# Copyright (C) 2016  Stefan Vargyas
# 
# This file is part of Json-Type.
# 
# Json-Type is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# 
# Json-Type is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with Json-Type.  If not, see <http://www.gnu.org/licenses/>.

#
# json type-lib test suite:
#

$ . ~/regtest2.sh
$ alias json-type-lib-regtest='regtest2-selftest -f test-json-type-lib.txt -a exec=pipe -B'

# output all test names:
$ json-type-lib-regtest -N
...

# run all tests:
$ json-type-lib-regtest -A
...

--[ prereq ]--------------------------------------------------------------------

$ json() { set -o pipefail && LD_LIBRARY_PATH=../lib ../src/json --literal-value -V -TA "$@"|LD_LIBRARY_PATH=../lib ../src/json --from-ast-print --verbose --no-error; }
$

--[ literal-value ]-------------------------------------------------------------

#
# # meta command:
# $ or v in null false true 123 '"foo"' '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '"list"'; do T="$v"; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test "$?" -ne 0 && echo "command failed: $c"; done
#
$ json <<< 'null'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: null
json: error: <stdin>:1:1: ^
command failed: json <<< 'null'
$ json <<< 'false'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: false
json: error: <stdin>:1:1: ^
command failed: json <<< 'false'
$ json <<< 'true'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: true
json: error: <stdin>:1:1: ^
command failed: json <<< 'true'
$ json <<< '123'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: 123
json: error: <stdin>:1:1: ^
command failed: json <<< '123'
$ json <<< '"foo"'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: "foo"
json: error: <stdin>:1:1: ^
command failed: json <<< '"foo"'
$ json <<< '"type"'
command failed: json <<< '"type"'
$ json <<< '"null"'
command failed: json <<< '"null"'
$ json <<< '"boolean"'
command failed: json <<< '"boolean"'
$ json <<< '"number"'
command failed: json <<< '"number"'
$ json <<< '"string"'
command failed: json <<< '"string"'
$ json <<< '"object"'
command failed: json <<< '"object"'
$ json <<< '"array"'
command failed: json <<< '"array"'
$ json <<< '"list"'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: "list"
json: error: <stdin>:1:1: ^
command failed: json <<< '"list"'
$

--[ object-value ]--------------------------------------------------------------

#
# # meta command:
# $ for n in foo type name plain; do for v in null false true 123 '"foo"' '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '"list"' '{}' '{"foo":"bar"}' '[]' '["foo","bar"]'; do T="{\"$n\":$v}"; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test "$?" -ne 0 && echo "command failed: $c"; done; done
#
$ json <<< '{"foo":null}'
json: error: <stdin>:1:2: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:2: {"foo":null}
json: error: <stdin>:1:2:  ^
command failed: json <<< '{"foo":null}'
$ json <<< '{"foo":false}'
json: error: <stdin>:1:2: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:2: {"foo":false}
json: error: <stdin>:1:2:  ^
command failed: json <<< '{"foo":false}'
$ json <<< '{"foo":true}'
json: error: <stdin>:1:2: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:2: {"foo":true}
json: error: <stdin>:1:2:  ^
command failed: json <<< '{"foo":true}'
$ json <<< '{"foo":123}'
json: error: <stdin>:1:2: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:2: {"foo":123}
json: error: <stdin>:1:2:  ^
command failed: json <<< '{"foo":123}'
$ json <<< '{"foo":"foo"}'
json: error: <stdin>:1:2: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:2: {"foo":"foo"}
json: error: <stdin>:1:2:  ^
command failed: json <<< '{"foo":"foo"}'
$ json <<< '{"foo":"type"}'
json: error: <stdin>:1:2: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:2: {"foo":"type"}
json: error: <stdin>:1:2:  ^
command failed: json <<< '{"foo":"type"}'
$ json <<< '{"foo":"null"}'
json: error: <stdin>:1:2: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:2: {"foo":"null"}
json: error: <stdin>:1:2:  ^
command failed: json <<< '{"foo":"null"}'
$ json <<< '{"foo":"boolean"}'
json: error: <stdin>:1:2: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:2: {"foo":"boolean"}
json: error: <stdin>:1:2:  ^
command failed: json <<< '{"foo":"boolean"}'
$ json <<< '{"foo":"number"}'
json: error: <stdin>:1:2: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:2: {"foo":"number"}
json: error: <stdin>:1:2:  ^
command failed: json <<< '{"foo":"number"}'
$ json <<< '{"foo":"string"}'
json: error: <stdin>:1:2: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:2: {"foo":"string"}
json: error: <stdin>:1:2:  ^
command failed: json <<< '{"foo":"string"}'
$ json <<< '{"foo":"object"}'
json: error: <stdin>:1:2: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:2: {"foo":"object"}
json: error: <stdin>:1:2:  ^
command failed: json <<< '{"foo":"object"}'
$ json <<< '{"foo":"array"}'
json: error: <stdin>:1:2: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:2: {"foo":"array"}
json: error: <stdin>:1:2:  ^
command failed: json <<< '{"foo":"array"}'
$ json <<< '{"foo":"list"}'
json: error: <stdin>:1:2: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:2: {"foo":"list"}
json: error: <stdin>:1:2:  ^
command failed: json <<< '{"foo":"list"}'
$ json <<< '{"foo":{}}'
json: error: <stdin>:1:2: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:2: {"foo":{}}
json: error: <stdin>:1:2:  ^
command failed: json <<< '{"foo":{}}'
$ json <<< '{"foo":{"foo":"bar"}}'
json: error: <stdin>:1:2: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:2: {"foo":{"foo":"bar"}}
json: error: <stdin>:1:2:  ^
command failed: json <<< '{"foo":{"foo":"bar"}}'
$ json <<< '{"foo":[]}'
json: error: <stdin>:1:2: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:2: {"foo":[]}
json: error: <stdin>:1:2:  ^
command failed: json <<< '{"foo":[]}'
$ json <<< '{"foo":["foo","bar"]}'
json: error: <stdin>:1:2: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:2: {"foo":["foo","bar"]}
json: error: <stdin>:1:2:  ^
command failed: json <<< '{"foo":["foo","bar"]}'
$ json <<< '{"type":null}'
json: error: <stdin>:1:9: meta error: invalid "type" object: type not "object", "array" or "list"
json: error: <stdin>:1:9: {"type":null}
json: error: <stdin>:1:9:         ^
command failed: json <<< '{"type":null}'
$ json <<< '{"type":false}'
json: error: <stdin>:1:9: meta error: invalid "type" object: type not "object", "array" or "list"
json: error: <stdin>:1:9: {"type":false}
json: error: <stdin>:1:9:         ^
command failed: json <<< '{"type":false}'
$ json <<< '{"type":true}'
json: error: <stdin>:1:9: meta error: invalid "type" object: type not "object", "array" or "list"
json: error: <stdin>:1:9: {"type":true}
json: error: <stdin>:1:9:         ^
command failed: json <<< '{"type":true}'
$ json <<< '{"type":123}'
json: error: <stdin>:1:9: meta error: invalid "type" object: type not "object", "array" or "list"
json: error: <stdin>:1:9: {"type":123}
json: error: <stdin>:1:9:         ^
command failed: json <<< '{"type":123}'
$ json <<< '{"type":"foo"}'
json: error: <stdin>:1:9: meta error: invalid "type" object: type not "object", "array" or "list"
json: error: <stdin>:1:9: {"type":"foo"}
json: error: <stdin>:1:9:         ^
command failed: json <<< '{"type":"foo"}'
$ json <<< '{"type":"type"}'
json: error: <stdin>:1:9: meta error: invalid "type" object: type not "object", "array" or "list"
json: error: <stdin>:1:9: {"type":"type"}
json: error: <stdin>:1:9:         ^
command failed: json <<< '{"type":"type"}'
$ json <<< '{"type":"null"}'
json: error: <stdin>:1:9: meta error: invalid "type" object: type not "object", "array" or "list"
json: error: <stdin>:1:9: {"type":"null"}
json: error: <stdin>:1:9:         ^
command failed: json <<< '{"type":"null"}'
$ json <<< '{"type":"boolean"}'
json: error: <stdin>:1:9: meta error: invalid "type" object: type not "object", "array" or "list"
json: error: <stdin>:1:9: {"type":"boolean"}
json: error: <stdin>:1:9:         ^
command failed: json <<< '{"type":"boolean"}'
$ json <<< '{"type":"number"}'
json: error: <stdin>:1:9: meta error: invalid "type" object: type not "object", "array" or "list"
json: error: <stdin>:1:9: {"type":"number"}
json: error: <stdin>:1:9:         ^
command failed: json <<< '{"type":"number"}'
$ json <<< '{"type":"string"}'
json: error: <stdin>:1:9: meta error: invalid "type" object: type not "object", "array" or "list"
json: error: <stdin>:1:9: {"type":"string"}
json: error: <stdin>:1:9:         ^
command failed: json <<< '{"type":"string"}'
$ json <<< '{"type":"object"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: arguments not of size two
json: error: <stdin>:1:1: {"type":"object"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"object"}'
$ json <<< '{"type":"array"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: arguments not of size two
json: error: <stdin>:1:1: {"type":"array"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"array"}'
$ json <<< '{"type":"list"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: arguments not of size two
json: error: <stdin>:1:1: {"type":"list"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"list"}'
$ json <<< '{"type":{}}'
json: error: <stdin>:1:9: meta error: invalid "type" object: type not "object", "array" or "list"
json: error: <stdin>:1:9: {"type":{}}
json: error: <stdin>:1:9:         ^
command failed: json <<< '{"type":{}}'
$ json <<< '{"type":{"foo":"bar"}}'
json: error: <stdin>:1:9: meta error: invalid "type" object: type not "object", "array" or "list"
json: error: <stdin>:1:9: {"type":{"foo":"bar"}}
json: error: <stdin>:1:9:         ^
command failed: json <<< '{"type":{"foo":"bar"}}'
$ json <<< '{"type":[]}'
json: error: <stdin>:1:9: meta error: invalid "type" object: type not "object", "array" or "list"
json: error: <stdin>:1:9: {"type":[]}
json: error: <stdin>:1:9:         ^
command failed: json <<< '{"type":[]}'
$ json <<< '{"type":["foo","bar"]}'
json: error: <stdin>:1:9: meta error: invalid "type" object: type not "object", "array" or "list"
json: error: <stdin>:1:9: {"type":["foo","bar"]}
json: error: <stdin>:1:9:         ^
command failed: json <<< '{"type":["foo","bar"]}'
$ json <<< '{"name":null}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":null}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":null}'
$ json <<< '{"name":false}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":false}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":false}'
$ json <<< '{"name":true}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":true}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":true}'
$ json <<< '{"name":123}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":123}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":123}'
$ json <<< '{"name":"foo"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"foo"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"foo"}'
$ json <<< '{"name":"type"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"type"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"type"}'
$ json <<< '{"name":"null"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"null"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"null"}'
$ json <<< '{"name":"boolean"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"boolean"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"boolean"}'
$ json <<< '{"name":"number"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"number"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"number"}'
$ json <<< '{"name":"string"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"string"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"string"}'
$ json <<< '{"name":"object"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"object"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"object"}'
$ json <<< '{"name":"array"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"array"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"array"}'
$ json <<< '{"name":"list"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"list"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"list"}'
$ json <<< '{"name":{}}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":{}}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":{}}'
$ json <<< '{"name":{"foo":"bar"}}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":{"foo":"bar"}}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":{"foo":"bar"}}'
$ json <<< '{"name":[]}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":[]}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":[]}'
$ json <<< '{"name":["foo","bar"]}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":["foo","bar"]}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":["foo","bar"]}'
$ json <<< '{"plain":null}'
{
    "plain": null
}
$ json <<< '{"plain":false}'
{
    "plain": false
}
$ json <<< '{"plain":true}'
{
    "plain": true
}
$ json <<< '{"plain":123}'
{
    "plain": 123
}
$ json <<< '{"plain":"foo"}'
{
    "plain": "foo"
}
$ json <<< '{"plain":"type"}'
{
    "plain": "type"
}
$ json <<< '{"plain":"null"}'
{
    "plain": "null"
}
$ json <<< '{"plain":"boolean"}'
{
    "plain": "boolean"
}
$ json <<< '{"plain":"number"}'
{
    "plain": "number"
}
$ json <<< '{"plain":"string"}'
{
    "plain": "string"
}
$ json <<< '{"plain":"object"}'
{
    "plain": "object"
}
$ json <<< '{"plain":"array"}'
{
    "plain": "array"
}
$ json <<< '{"plain":"list"}'
{
    "plain": "list"
}
$ json <<< '{"plain":{}}'
json: error: <stdin>:1:10: meta error: invalid "plain" object: value must be `null', a boolean, a number or a string
json: error: <stdin>:1:10: {"plain":{}}
json: error: <stdin>:1:10:          ^
command failed: json <<< '{"plain":{}}'
$ json <<< '{"plain":{"foo":"bar"}}'
json: error: <stdin>:1:10: meta error: invalid "plain" object: value must be `null', a boolean, a number or a string
json: error: <stdin>:1:10: {"plain":{"foo":"bar"}}
json: error: <stdin>:1:10:          ^
command failed: json <<< '{"plain":{"foo":"bar"}}'
$ json <<< '{"plain":[]}'
json: error: <stdin>:1:10: meta error: invalid "plain" object: value must be `null', a boolean, a number or a string
json: error: <stdin>:1:10: {"plain":[]}
json: error: <stdin>:1:10:          ^
command failed: json <<< '{"plain":[]}'
$ json <<< '{"plain":["foo","bar"]}'
json: error: <stdin>:1:10: meta error: invalid "plain" object: value must be `null', a boolean, a number or a string
json: error: <stdin>:1:10: {"plain":["foo","bar"]}
json: error: <stdin>:1:10:          ^
command failed: json <<< '{"plain":["foo","bar"]}'
$

--[ array-value ]---------------------------------------------------------------

#
# # meta command:
# $ for v in null false true 123 '"foo"' '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '"list"' '{}' '{"foo":"bar"}' '{"name":"baz","type":"object"}' '[]' '["number","string"]'; do T='['"$v"']'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test "$?" -ne 0 && echo "command failed: $c"; done
#
$ json <<< '[null]'
json: error: <stdin>:1:2: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:2: [null]
json: error: <stdin>:1:2:  ^
command failed: json <<< '[null]'
$ json <<< '[false]'
json: error: <stdin>:1:2: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:2: [false]
json: error: <stdin>:1:2:  ^
command failed: json <<< '[false]'
$ json <<< '[true]'
json: error: <stdin>:1:2: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:2: [true]
json: error: <stdin>:1:2:  ^
command failed: json <<< '[true]'
$ json <<< '[123]'
json: error: <stdin>:1:2: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:2: [123]
json: error: <stdin>:1:2:  ^
command failed: json <<< '[123]'
$ json <<< '["foo"]'
json: error: <stdin>:1:2: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:2: ["foo"]
json: error: <stdin>:1:2:  ^
command failed: json <<< '["foo"]'
$ json <<< '["type"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["type"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["type"]'
$ json <<< '["null"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["null"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["null"]'
$ json <<< '["boolean"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["boolean"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["boolean"]'
$ json <<< '["number"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["number"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["number"]'
$ json <<< '["string"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["string"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["string"]'
$ json <<< '["object"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["object"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["object"]'
$ json <<< '["array"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["array"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["array"]'
$ json <<< '["list"]'
json: error: <stdin>:1:2: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:2: ["list"]
json: error: <stdin>:1:2:  ^
command failed: json <<< '["list"]'
$ json <<< '[{}]'
json: error: <stdin>:1:2: meta error: empty objects are not allowed
json: error: <stdin>:1:2: [{}]
json: error: <stdin>:1:2:  ^
command failed: json <<< '[{}]'
$ json <<< '[{"foo":"bar"}]'
json: error: <stdin>:1:3: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:3: [{"foo":"bar"}]
json: error: <stdin>:1:3:   ^
command failed: json <<< '[{"foo":"bar"}]'
$ json <<< '[{"name":"baz","type":"object"}]'
[
    {
        "name": "baz",
        "type": "object"
    }
]
$ json <<< '[[]]'
json: error: <stdin>:1:2: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:2: [[]]
json: error: <stdin>:1:2:  ^
command failed: json <<< '[[]]'
$ json <<< '[["number","string"]]'
json: error: <stdin>:1:2: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:2: [["number","string"]]
json: error: <stdin>:1:2:  ^
command failed: json <<< '[["number","string"]]'
$

--[ array-value2 ]--------------------------------------------------------------

#
# # meta command:
# $ for v in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"plain":null}' '{"type":"array","args":"type"}' '{"name":"baz","type":"object"}'; do for v2 in null false true 123 '"foo"' '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '"list"' '{}' '{"foo":"bar"}' '{"name":"baz","type":"object"}' '[]' '["number","string"]'; do T='['"$v"','"$v2"']'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test "$?" -ne 0 && echo "command failed: $c"; done; done
#
$ json <<< '["type",null]'
json: error: <stdin>:1:9: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:9: ["type",null]
json: error: <stdin>:1:9:         ^
command failed: json <<< '["type",null]'
$ json <<< '["type",false]'
json: error: <stdin>:1:9: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:9: ["type",false]
json: error: <stdin>:1:9:         ^
command failed: json <<< '["type",false]'
$ json <<< '["type",true]'
json: error: <stdin>:1:9: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:9: ["type",true]
json: error: <stdin>:1:9:         ^
command failed: json <<< '["type",true]'
$ json <<< '["type",123]'
json: error: <stdin>:1:9: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:9: ["type",123]
json: error: <stdin>:1:9:         ^
command failed: json <<< '["type",123]'
$ json <<< '["type","foo"]'
json: error: <stdin>:1:9: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:9: ["type","foo"]
json: error: <stdin>:1:9:         ^
command failed: json <<< '["type","foo"]'
$ json <<< '["type","type"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["type","type"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["type","type"]'
$ json <<< '["type","null"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["type","null"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["type","null"]'
$ json <<< '["type","boolean"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["type","boolean"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["type","boolean"]'
$ json <<< '["type","number"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["type","number"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["type","number"]'
$ json <<< '["type","string"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["type","string"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["type","string"]'
$ json <<< '["type","object"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["type","object"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["type","object"]'
$ json <<< '["type","array"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["type","array"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["type","array"]'
$ json <<< '["type","list"]'
json: error: <stdin>:1:9: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:9: ["type","list"]
json: error: <stdin>:1:9:         ^
command failed: json <<< '["type","list"]'
$ json <<< '["type",{}]'
json: error: <stdin>:1:9: meta error: empty objects are not allowed
json: error: <stdin>:1:9: ["type",{}]
json: error: <stdin>:1:9:         ^
command failed: json <<< '["type",{}]'
$ json <<< '["type",{"foo":"bar"}]'
json: error: <stdin>:1:10: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:10: ["type",{"foo":"bar"}]
json: error: <stdin>:1:10:          ^
command failed: json <<< '["type",{"foo":"bar"}]'
$ json <<< '["type",{"name":"baz","type":"object"}]'
json: error: <stdin>:1:9: meta error: invalid array: its elements must all be types or all be "name" objects
json: error: <stdin>:1:9: ["type",{"name":"baz","type":"object"}]
json: error: <stdin>:1:9:         ^
command failed: json <<< '["type",{"name":"baz","type":"object"}]'
$ json <<< '["type",[]]'
json: error: <stdin>:1:9: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:9: ["type",[]]
json: error: <stdin>:1:9:         ^
command failed: json <<< '["type",[]]'
$ json <<< '["type",["number","string"]]'
json: error: <stdin>:1:9: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:9: ["type",["number","string"]]
json: error: <stdin>:1:9:         ^
command failed: json <<< '["type",["number","string"]]'
$ json <<< '["null",null]'
json: error: <stdin>:1:9: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:9: ["null",null]
json: error: <stdin>:1:9:         ^
command failed: json <<< '["null",null]'
$ json <<< '["null",false]'
json: error: <stdin>:1:9: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:9: ["null",false]
json: error: <stdin>:1:9:         ^
command failed: json <<< '["null",false]'
$ json <<< '["null",true]'
json: error: <stdin>:1:9: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:9: ["null",true]
json: error: <stdin>:1:9:         ^
command failed: json <<< '["null",true]'
$ json <<< '["null",123]'
json: error: <stdin>:1:9: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:9: ["null",123]
json: error: <stdin>:1:9:         ^
command failed: json <<< '["null",123]'
$ json <<< '["null","foo"]'
json: error: <stdin>:1:9: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:9: ["null","foo"]
json: error: <stdin>:1:9:         ^
command failed: json <<< '["null","foo"]'
$ json <<< '["null","type"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["null","type"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["null","type"]'
$ json <<< '["null","null"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["null","null"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["null","null"]'
$ json <<< '["null","boolean"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["null","boolean"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["null","boolean"]'
$ json <<< '["null","number"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["null","number"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["null","number"]'
$ json <<< '["null","string"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["null","string"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["null","string"]'
$ json <<< '["null","object"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["null","object"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["null","object"]'
$ json <<< '["null","array"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["null","array"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["null","array"]'
$ json <<< '["null","list"]'
json: error: <stdin>:1:9: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:9: ["null","list"]
json: error: <stdin>:1:9:         ^
command failed: json <<< '["null","list"]'
$ json <<< '["null",{}]'
json: error: <stdin>:1:9: meta error: empty objects are not allowed
json: error: <stdin>:1:9: ["null",{}]
json: error: <stdin>:1:9:         ^
command failed: json <<< '["null",{}]'
$ json <<< '["null",{"foo":"bar"}]'
json: error: <stdin>:1:10: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:10: ["null",{"foo":"bar"}]
json: error: <stdin>:1:10:          ^
command failed: json <<< '["null",{"foo":"bar"}]'
$ json <<< '["null",{"name":"baz","type":"object"}]'
json: error: <stdin>:1:9: meta error: invalid array: its elements must all be types or all be "name" objects
json: error: <stdin>:1:9: ["null",{"name":"baz","type":"object"}]
json: error: <stdin>:1:9:         ^
command failed: json <<< '["null",{"name":"baz","type":"object"}]'
$ json <<< '["null",[]]'
json: error: <stdin>:1:9: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:9: ["null",[]]
json: error: <stdin>:1:9:         ^
command failed: json <<< '["null",[]]'
$ json <<< '["null",["number","string"]]'
json: error: <stdin>:1:9: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:9: ["null",["number","string"]]
json: error: <stdin>:1:9:         ^
command failed: json <<< '["null",["number","string"]]'
$ json <<< '["boolean",null]'
json: error: <stdin>:1:12: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:12: ["boolean",null]
json: error: <stdin>:1:12:            ^
command failed: json <<< '["boolean",null]'
$ json <<< '["boolean",false]'
json: error: <stdin>:1:12: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:12: ["boolean",false]
json: error: <stdin>:1:12:            ^
command failed: json <<< '["boolean",false]'
$ json <<< '["boolean",true]'
json: error: <stdin>:1:12: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:12: ["boolean",true]
json: error: <stdin>:1:12:            ^
command failed: json <<< '["boolean",true]'
$ json <<< '["boolean",123]'
json: error: <stdin>:1:12: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:12: ["boolean",123]
json: error: <stdin>:1:12:            ^
command failed: json <<< '["boolean",123]'
$ json <<< '["boolean","foo"]'
json: error: <stdin>:1:12: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:12: ["boolean","foo"]
json: error: <stdin>:1:12:            ^
command failed: json <<< '["boolean","foo"]'
$ json <<< '["boolean","type"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["boolean","type"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["boolean","type"]'
$ json <<< '["boolean","null"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["boolean","null"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["boolean","null"]'
$ json <<< '["boolean","boolean"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["boolean","boolean"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["boolean","boolean"]'
$ json <<< '["boolean","number"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["boolean","number"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["boolean","number"]'
$ json <<< '["boolean","string"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["boolean","string"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["boolean","string"]'
$ json <<< '["boolean","object"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["boolean","object"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["boolean","object"]'
$ json <<< '["boolean","array"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["boolean","array"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["boolean","array"]'
$ json <<< '["boolean","list"]'
json: error: <stdin>:1:12: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:12: ["boolean","list"]
json: error: <stdin>:1:12:            ^
command failed: json <<< '["boolean","list"]'
$ json <<< '["boolean",{}]'
json: error: <stdin>:1:12: meta error: empty objects are not allowed
json: error: <stdin>:1:12: ["boolean",{}]
json: error: <stdin>:1:12:            ^
command failed: json <<< '["boolean",{}]'
$ json <<< '["boolean",{"foo":"bar"}]'
json: error: <stdin>:1:13: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:13: ["boolean",{"foo":"bar"}]
json: error: <stdin>:1:13:             ^
command failed: json <<< '["boolean",{"foo":"bar"}]'
$ json <<< '["boolean",{"name":"baz","type":"object"}]'
json: error: <stdin>:1:12: meta error: invalid array: its elements must all be types or all be "name" objects
json: error: <stdin>:1:12: ["boolean",{"name":"baz","type":"object"}]
json: error: <stdin>:1:12:            ^
command failed: json <<< '["boolean",{"name":"baz","type":"object"}]'
$ json <<< '["boolean",[]]'
json: error: <stdin>:1:12: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:12: ["boolean",[]]
json: error: <stdin>:1:12:            ^
command failed: json <<< '["boolean",[]]'
$ json <<< '["boolean",["number","string"]]'
json: error: <stdin>:1:12: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:12: ["boolean",["number","string"]]
json: error: <stdin>:1:12:            ^
command failed: json <<< '["boolean",["number","string"]]'
$ json <<< '["number",null]'
json: error: <stdin>:1:11: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:11: ["number",null]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["number",null]'
$ json <<< '["number",false]'
json: error: <stdin>:1:11: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:11: ["number",false]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["number",false]'
$ json <<< '["number",true]'
json: error: <stdin>:1:11: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:11: ["number",true]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["number",true]'
$ json <<< '["number",123]'
json: error: <stdin>:1:11: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:11: ["number",123]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["number",123]'
$ json <<< '["number","foo"]'
json: error: <stdin>:1:11: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:11: ["number","foo"]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["number","foo"]'
$ json <<< '["number","type"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["number","type"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["number","type"]'
$ json <<< '["number","null"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["number","null"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["number","null"]'
$ json <<< '["number","boolean"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["number","boolean"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["number","boolean"]'
$ json <<< '["number","number"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["number","number"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["number","number"]'
$ json <<< '["number","string"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["number","string"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["number","string"]'
$ json <<< '["number","object"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["number","object"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["number","object"]'
$ json <<< '["number","array"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["number","array"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["number","array"]'
$ json <<< '["number","list"]'
json: error: <stdin>:1:11: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:11: ["number","list"]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["number","list"]'
$ json <<< '["number",{}]'
json: error: <stdin>:1:11: meta error: empty objects are not allowed
json: error: <stdin>:1:11: ["number",{}]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["number",{}]'
$ json <<< '["number",{"foo":"bar"}]'
json: error: <stdin>:1:12: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:12: ["number",{"foo":"bar"}]
json: error: <stdin>:1:12:            ^
command failed: json <<< '["number",{"foo":"bar"}]'
$ json <<< '["number",{"name":"baz","type":"object"}]'
json: error: <stdin>:1:11: meta error: invalid array: its elements must all be types or all be "name" objects
json: error: <stdin>:1:11: ["number",{"name":"baz","type":"object"}]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["number",{"name":"baz","type":"object"}]'
$ json <<< '["number",[]]'
json: error: <stdin>:1:11: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:11: ["number",[]]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["number",[]]'
$ json <<< '["number",["number","string"]]'
json: error: <stdin>:1:11: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:11: ["number",["number","string"]]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["number",["number","string"]]'
$ json <<< '["string",null]'
json: error: <stdin>:1:11: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:11: ["string",null]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["string",null]'
$ json <<< '["string",false]'
json: error: <stdin>:1:11: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:11: ["string",false]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["string",false]'
$ json <<< '["string",true]'
json: error: <stdin>:1:11: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:11: ["string",true]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["string",true]'
$ json <<< '["string",123]'
json: error: <stdin>:1:11: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:11: ["string",123]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["string",123]'
$ json <<< '["string","foo"]'
json: error: <stdin>:1:11: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:11: ["string","foo"]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["string","foo"]'
$ json <<< '["string","type"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["string","type"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["string","type"]'
$ json <<< '["string","null"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["string","null"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["string","null"]'
$ json <<< '["string","boolean"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["string","boolean"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["string","boolean"]'
$ json <<< '["string","number"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["string","number"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["string","number"]'
$ json <<< '["string","string"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["string","string"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["string","string"]'
$ json <<< '["string","object"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["string","object"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["string","object"]'
$ json <<< '["string","array"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["string","array"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["string","array"]'
$ json <<< '["string","list"]'
json: error: <stdin>:1:11: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:11: ["string","list"]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["string","list"]'
$ json <<< '["string",{}]'
json: error: <stdin>:1:11: meta error: empty objects are not allowed
json: error: <stdin>:1:11: ["string",{}]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["string",{}]'
$ json <<< '["string",{"foo":"bar"}]'
json: error: <stdin>:1:12: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:12: ["string",{"foo":"bar"}]
json: error: <stdin>:1:12:            ^
command failed: json <<< '["string",{"foo":"bar"}]'
$ json <<< '["string",{"name":"baz","type":"object"}]'
json: error: <stdin>:1:11: meta error: invalid array: its elements must all be types or all be "name" objects
json: error: <stdin>:1:11: ["string",{"name":"baz","type":"object"}]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["string",{"name":"baz","type":"object"}]'
$ json <<< '["string",[]]'
json: error: <stdin>:1:11: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:11: ["string",[]]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["string",[]]'
$ json <<< '["string",["number","string"]]'
json: error: <stdin>:1:11: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:11: ["string",["number","string"]]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["string",["number","string"]]'
$ json <<< '["object",null]'
json: error: <stdin>:1:11: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:11: ["object",null]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["object",null]'
$ json <<< '["object",false]'
json: error: <stdin>:1:11: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:11: ["object",false]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["object",false]'
$ json <<< '["object",true]'
json: error: <stdin>:1:11: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:11: ["object",true]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["object",true]'
$ json <<< '["object",123]'
json: error: <stdin>:1:11: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:11: ["object",123]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["object",123]'
$ json <<< '["object","foo"]'
json: error: <stdin>:1:11: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:11: ["object","foo"]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["object","foo"]'
$ json <<< '["object","type"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["object","type"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["object","type"]'
$ json <<< '["object","null"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["object","null"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["object","null"]'
$ json <<< '["object","boolean"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["object","boolean"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["object","boolean"]'
$ json <<< '["object","number"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["object","number"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["object","number"]'
$ json <<< '["object","string"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["object","string"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["object","string"]'
$ json <<< '["object","object"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["object","object"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["object","object"]'
$ json <<< '["object","array"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["object","array"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["object","array"]'
$ json <<< '["object","list"]'
json: error: <stdin>:1:11: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:11: ["object","list"]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["object","list"]'
$ json <<< '["object",{}]'
json: error: <stdin>:1:11: meta error: empty objects are not allowed
json: error: <stdin>:1:11: ["object",{}]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["object",{}]'
$ json <<< '["object",{"foo":"bar"}]'
json: error: <stdin>:1:12: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:12: ["object",{"foo":"bar"}]
json: error: <stdin>:1:12:            ^
command failed: json <<< '["object",{"foo":"bar"}]'
$ json <<< '["object",{"name":"baz","type":"object"}]'
json: error: <stdin>:1:11: meta error: invalid array: its elements must all be types or all be "name" objects
json: error: <stdin>:1:11: ["object",{"name":"baz","type":"object"}]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["object",{"name":"baz","type":"object"}]'
$ json <<< '["object",[]]'
json: error: <stdin>:1:11: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:11: ["object",[]]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["object",[]]'
$ json <<< '["object",["number","string"]]'
json: error: <stdin>:1:11: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:11: ["object",["number","string"]]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["object",["number","string"]]'
$ json <<< '["array",null]'
json: error: <stdin>:1:10: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:10: ["array",null]
json: error: <stdin>:1:10:          ^
command failed: json <<< '["array",null]'
$ json <<< '["array",false]'
json: error: <stdin>:1:10: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:10: ["array",false]
json: error: <stdin>:1:10:          ^
command failed: json <<< '["array",false]'
$ json <<< '["array",true]'
json: error: <stdin>:1:10: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:10: ["array",true]
json: error: <stdin>:1:10:          ^
command failed: json <<< '["array",true]'
$ json <<< '["array",123]'
json: error: <stdin>:1:10: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:10: ["array",123]
json: error: <stdin>:1:10:          ^
command failed: json <<< '["array",123]'
$ json <<< '["array","foo"]'
json: error: <stdin>:1:10: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:10: ["array","foo"]
json: error: <stdin>:1:10:          ^
command failed: json <<< '["array","foo"]'
$ json <<< '["array","type"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["array","type"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["array","type"]'
$ json <<< '["array","null"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["array","null"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["array","null"]'
$ json <<< '["array","boolean"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["array","boolean"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["array","boolean"]'
$ json <<< '["array","number"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["array","number"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["array","number"]'
$ json <<< '["array","string"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["array","string"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["array","string"]'
$ json <<< '["array","object"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["array","object"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["array","object"]'
$ json <<< '["array","array"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: ["array","array"]
json: error: <stdin>:1:1: ^
command failed: json <<< '["array","array"]'
$ json <<< '["array","list"]'
json: error: <stdin>:1:10: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:10: ["array","list"]
json: error: <stdin>:1:10:          ^
command failed: json <<< '["array","list"]'
$ json <<< '["array",{}]'
json: error: <stdin>:1:10: meta error: empty objects are not allowed
json: error: <stdin>:1:10: ["array",{}]
json: error: <stdin>:1:10:          ^
command failed: json <<< '["array",{}]'
$ json <<< '["array",{"foo":"bar"}]'
json: error: <stdin>:1:11: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:11: ["array",{"foo":"bar"}]
json: error: <stdin>:1:11:           ^
command failed: json <<< '["array",{"foo":"bar"}]'
$ json <<< '["array",{"name":"baz","type":"object"}]'
json: error: <stdin>:1:10: meta error: invalid array: its elements must all be types or all be "name" objects
json: error: <stdin>:1:10: ["array",{"name":"baz","type":"object"}]
json: error: <stdin>:1:10:          ^
command failed: json <<< '["array",{"name":"baz","type":"object"}]'
$ json <<< '["array",[]]'
json: error: <stdin>:1:10: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:10: ["array",[]]
json: error: <stdin>:1:10:          ^
command failed: json <<< '["array",[]]'
$ json <<< '["array",["number","string"]]'
json: error: <stdin>:1:10: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:10: ["array",["number","string"]]
json: error: <stdin>:1:10:          ^
command failed: json <<< '["array",["number","string"]]'
$ json <<< '[{"plain":null},null]'
json: error: <stdin>:1:17: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:17: [{"plain":null},null]
json: error: <stdin>:1:17:                 ^
command failed: json <<< '[{"plain":null},null]'
$ json <<< '[{"plain":null},false]'
json: error: <stdin>:1:17: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:17: [{"plain":null},false]
json: error: <stdin>:1:17:                 ^
command failed: json <<< '[{"plain":null},false]'
$ json <<< '[{"plain":null},true]'
json: error: <stdin>:1:17: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:17: [{"plain":null},true]
json: error: <stdin>:1:17:                 ^
command failed: json <<< '[{"plain":null},true]'
$ json <<< '[{"plain":null},123]'
json: error: <stdin>:1:17: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:17: [{"plain":null},123]
json: error: <stdin>:1:17:                 ^
command failed: json <<< '[{"plain":null},123]'
$ json <<< '[{"plain":null},"foo"]'
json: error: <stdin>:1:17: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:17: [{"plain":null},"foo"]
json: error: <stdin>:1:17:                 ^
command failed: json <<< '[{"plain":null},"foo"]'
$ json <<< '[{"plain":null},"type"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: [{"plain":null},"type"]
json: error: <stdin>:1:1: ^
command failed: json <<< '[{"plain":null},"type"]'
$ json <<< '[{"plain":null},"null"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: [{"plain":null},"null"]
json: error: <stdin>:1:1: ^
command failed: json <<< '[{"plain":null},"null"]'
$ json <<< '[{"plain":null},"boolean"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: [{"plain":null},"boolean"]
json: error: <stdin>:1:1: ^
command failed: json <<< '[{"plain":null},"boolean"]'
$ json <<< '[{"plain":null},"number"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: [{"plain":null},"number"]
json: error: <stdin>:1:1: ^
command failed: json <<< '[{"plain":null},"number"]'
$ json <<< '[{"plain":null},"string"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: [{"plain":null},"string"]
json: error: <stdin>:1:1: ^
command failed: json <<< '[{"plain":null},"string"]'
$ json <<< '[{"plain":null},"object"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: [{"plain":null},"object"]
json: error: <stdin>:1:1: ^
command failed: json <<< '[{"plain":null},"object"]'
$ json <<< '[{"plain":null},"array"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: [{"plain":null},"array"]
json: error: <stdin>:1:1: ^
command failed: json <<< '[{"plain":null},"array"]'
$ json <<< '[{"plain":null},"list"]'
json: error: <stdin>:1:17: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:17: [{"plain":null},"list"]
json: error: <stdin>:1:17:                 ^
command failed: json <<< '[{"plain":null},"list"]'
$ json <<< '[{"plain":null},{}]'
json: error: <stdin>:1:17: meta error: empty objects are not allowed
json: error: <stdin>:1:17: [{"plain":null},{}]
json: error: <stdin>:1:17:                 ^
command failed: json <<< '[{"plain":null},{}]'
$ json <<< '[{"plain":null},{"foo":"bar"}]'
json: error: <stdin>:1:18: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:18: [{"plain":null},{"foo":"bar"}]
json: error: <stdin>:1:18:                  ^
command failed: json <<< '[{"plain":null},{"foo":"bar"}]'
$ json <<< '[{"plain":null},{"name":"baz","type":"object"}]'
json: error: <stdin>:1:17: meta error: invalid array: its elements must all be types or all be "name" objects
json: error: <stdin>:1:17: [{"plain":null},{"name":"baz","type":"object"}]
json: error: <stdin>:1:17:                 ^
command failed: json <<< '[{"plain":null},{"name":"baz","type":"object"}]'
$ json <<< '[{"plain":null},[]]'
json: error: <stdin>:1:17: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:17: [{"plain":null},[]]
json: error: <stdin>:1:17:                 ^
command failed: json <<< '[{"plain":null},[]]'
$ json <<< '[{"plain":null},["number","string"]]'
json: error: <stdin>:1:17: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:17: [{"plain":null},["number","string"]]
json: error: <stdin>:1:17:                 ^
command failed: json <<< '[{"plain":null},["number","string"]]'
$ json <<< '[{"type":"array","args":"type"},null]'
json: error: <stdin>:1:33: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:33: [{"type":"array","args":"type"},null]
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '[{"type":"array","args":"type"},null]'
$ json <<< '[{"type":"array","args":"type"},false]'
json: error: <stdin>:1:33: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:33: [{"type":"array","args":"type"},false]
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '[{"type":"array","args":"type"},false]'
$ json <<< '[{"type":"array","args":"type"},true]'
json: error: <stdin>:1:33: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:33: [{"type":"array","args":"type"},true]
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '[{"type":"array","args":"type"},true]'
$ json <<< '[{"type":"array","args":"type"},123]'
json: error: <stdin>:1:33: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:33: [{"type":"array","args":"type"},123]
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '[{"type":"array","args":"type"},123]'
$ json <<< '[{"type":"array","args":"type"},"foo"]'
json: error: <stdin>:1:33: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:33: [{"type":"array","args":"type"},"foo"]
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '[{"type":"array","args":"type"},"foo"]'
$ json <<< '[{"type":"array","args":"type"},"type"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: [{"type":"array","args":"type"},"
json: error: <stdin>:1:1: ^
command failed: json <<< '[{"type":"array","args":"type"},"type"]'
$ json <<< '[{"type":"array","args":"type"},"null"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: [{"type":"array","args":"type"},"
json: error: <stdin>:1:1: ^
command failed: json <<< '[{"type":"array","args":"type"},"null"]'
$ json <<< '[{"type":"array","args":"type"},"boolean"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: [{"type":"array","args":"type"},"
json: error: <stdin>:1:1: ^
command failed: json <<< '[{"type":"array","args":"type"},"boolean"]'
$ json <<< '[{"type":"array","args":"type"},"number"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: [{"type":"array","args":"type"},"
json: error: <stdin>:1:1: ^
command failed: json <<< '[{"type":"array","args":"type"},"number"]'
$ json <<< '[{"type":"array","args":"type"},"string"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: [{"type":"array","args":"type"},"
json: error: <stdin>:1:1: ^
command failed: json <<< '[{"type":"array","args":"type"},"string"]'
$ json <<< '[{"type":"array","args":"type"},"object"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: [{"type":"array","args":"type"},"
json: error: <stdin>:1:1: ^
command failed: json <<< '[{"type":"array","args":"type"},"object"]'
$ json <<< '[{"type":"array","args":"type"},"array"]'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: [{"type":"array","args":"type"},"
json: error: <stdin>:1:1: ^
command failed: json <<< '[{"type":"array","args":"type"},"array"]'
$ json <<< '[{"type":"array","args":"type"},"list"]'
json: error: <stdin>:1:33: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:33: [{"type":"array","args":"type"},"list"]
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '[{"type":"array","args":"type"},"list"]'
$ json <<< '[{"type":"array","args":"type"},{}]'
json: error: <stdin>:1:33: meta error: empty objects are not allowed
json: error: <stdin>:1:33: [{"type":"array","args":"type"},{}]
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '[{"type":"array","args":"type"},{}]'
$ json <<< '[{"type":"array","args":"type"},{"foo":"bar"}]'
json: error: <stdin>:1:34: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:34: {"type":"array","args":"type"},{"foo":"bar"}]
json: error: <stdin>:1:34:                                 ^
command failed: json <<< '[{"type":"array","args":"type"},{"foo":"bar"}]'
$ json <<< '[{"type":"array","args":"type"},{"name":"baz","type":"object"}]'
json: error: <stdin>:1:33: meta error: invalid array: its elements must all be types or all be "name" objects
json: error: <stdin>:1:33: [{"type":"array","args":"type"},{"name":"baz","type":"object"}]
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '[{"type":"array","args":"type"},{"name":"baz","type":"object"}]'
$ json <<< '[{"type":"array","args":"type"},[]]'
json: error: <stdin>:1:33: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:33: [{"type":"array","args":"type"},[]]
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '[{"type":"array","args":"type"},[]]'
$ json <<< '[{"type":"array","args":"type"},["number","string"]]'
json: error: <stdin>:1:33: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:33: [{"type":"array","args":"type"},["number","string"]]
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '[{"type":"array","args":"type"},["number","string"]]'
$ json <<< '[{"name":"baz","type":"object"},null]'
json: error: <stdin>:1:33: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:33: [{"name":"baz","type":"object"},null]
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '[{"name":"baz","type":"object"},null]'
$ json <<< '[{"name":"baz","type":"object"},false]'
json: error: <stdin>:1:33: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:33: [{"name":"baz","type":"object"},false]
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '[{"name":"baz","type":"object"},false]'
$ json <<< '[{"name":"baz","type":"object"},true]'
json: error: <stdin>:1:33: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:33: [{"name":"baz","type":"object"},true]
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '[{"name":"baz","type":"object"},true]'
$ json <<< '[{"name":"baz","type":"object"},123]'
json: error: <stdin>:1:33: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:33: [{"name":"baz","type":"object"},123]
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '[{"name":"baz","type":"object"},123]'
$ json <<< '[{"name":"baz","type":"object"},"foo"]'
json: error: <stdin>:1:33: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:33: [{"name":"baz","type":"object"},"foo"]
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '[{"name":"baz","type":"object"},"foo"]'
$ json <<< '[{"name":"baz","type":"object"},"type"]'
json: error: <stdin>:1:33: meta error: invalid array: its elements must all be types or all be "name" objects
json: error: <stdin>:1:33: [{"name":"baz","type":"object"},"type"]
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '[{"name":"baz","type":"object"},"type"]'
$ json <<< '[{"name":"baz","type":"object"},"null"]'
json: error: <stdin>:1:33: meta error: invalid array: its elements must all be types or all be "name" objects
json: error: <stdin>:1:33: [{"name":"baz","type":"object"},"null"]
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '[{"name":"baz","type":"object"},"null"]'
$ json <<< '[{"name":"baz","type":"object"},"boolean"]'
json: error: <stdin>:1:33: meta error: invalid array: its elements must all be types or all be "name" objects
json: error: <stdin>:1:33: [{"name":"baz","type":"object"},"boolean"]
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '[{"name":"baz","type":"object"},"boolean"]'
$ json <<< '[{"name":"baz","type":"object"},"number"]'
json: error: <stdin>:1:33: meta error: invalid array: its elements must all be types or all be "name" objects
json: error: <stdin>:1:33: [{"name":"baz","type":"object"},"number"]
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '[{"name":"baz","type":"object"},"number"]'
$ json <<< '[{"name":"baz","type":"object"},"string"]'
json: error: <stdin>:1:33: meta error: invalid array: its elements must all be types or all be "name" objects
json: error: <stdin>:1:33: [{"name":"baz","type":"object"},"string"]
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '[{"name":"baz","type":"object"},"string"]'
$ json <<< '[{"name":"baz","type":"object"},"object"]'
json: error: <stdin>:1:33: meta error: invalid array: its elements must all be types or all be "name" objects
json: error: <stdin>:1:33: [{"name":"baz","type":"object"},"object"]
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '[{"name":"baz","type":"object"},"object"]'
$ json <<< '[{"name":"baz","type":"object"},"array"]'
json: error: <stdin>:1:33: meta error: invalid array: its elements must all be types or all be "name" objects
json: error: <stdin>:1:33: [{"name":"baz","type":"object"},"array"]
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '[{"name":"baz","type":"object"},"array"]'
$ json <<< '[{"name":"baz","type":"object"},"list"]'
json: error: <stdin>:1:33: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:33: [{"name":"baz","type":"object"},"list"]
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '[{"name":"baz","type":"object"},"list"]'
$ json <<< '[{"name":"baz","type":"object"},{}]'
json: error: <stdin>:1:33: meta error: empty objects are not allowed
json: error: <stdin>:1:33: [{"name":"baz","type":"object"},{}]
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '[{"name":"baz","type":"object"},{}]'
$ json <<< '[{"name":"baz","type":"object"},{"foo":"bar"}]'
json: error: <stdin>:1:34: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:34: {"name":"baz","type":"object"},{"foo":"bar"}]
json: error: <stdin>:1:34:                                 ^
command failed: json <<< '[{"name":"baz","type":"object"},{"foo":"bar"}]'
$ json <<< '[{"name":"baz","type":"object"},{"name":"baz","type":"object"}]'
json: error: <stdin>:1:41: attribute error: invalid array of "name" objects: duplicated type name (previous defined at 1:10)
json: error: <stdin>:1:41: :"baz","type":"object"},{"name":"baz","type":"object"}]
json: error: <stdin>:1:41:                                 ^
[
    {
        "name": "baz",
        "type": "object"
    },
    {
        "name": "baz",
        "type": "object"
    }
]
command failed: json <<< '[{"name":"baz","type":"object"},{"name":"baz","type":"object"}]'
$ json <<< '[{"name":"baz","type":"object"},[]]'
json: error: <stdin>:1:33: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:33: [{"name":"baz","type":"object"},[]]
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '[{"name":"baz","type":"object"},[]]'
$ json <<< '[{"name":"baz","type":"object"},["number","string"]]'
json: error: <stdin>:1:33: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:33: [{"name":"baz","type":"object"},["number","string"]]
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '[{"name":"baz","type":"object"},["number","string"]]'
$

--[ type ]----------------------------------------------------------------------

#
# # meta command:
# $ for t in object array list; do for n in foo args; do for v in null false true 123 '"foo"' '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '"list"' '{}' '{"foo":"bar"}' '[]' '["foo","bar"]' '[{"name":"baz","type":"object"}]' '["boolean","number"]'; do T='{"type":"'$t'","'"$n"'":'"$v"'}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test "$?" -ne 0 && echo "command failed: $c"; done; done; done
#
$ json <<< '{"type":"object","foo":null}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"object","foo":null}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"object","foo":null}'
$ json <<< '{"type":"object","foo":false}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"object","foo":false}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"object","foo":false}'
$ json <<< '{"type":"object","foo":true}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"object","foo":true}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"object","foo":true}'
$ json <<< '{"type":"object","foo":123}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"object","foo":123}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"object","foo":123}'
$ json <<< '{"type":"object","foo":"foo"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"object","foo":"foo"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"object","foo":"foo"}'
$ json <<< '{"type":"object","foo":"type"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"object","foo":"type"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"object","foo":"type"}'
$ json <<< '{"type":"object","foo":"null"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"object","foo":"null"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"object","foo":"null"}'
$ json <<< '{"type":"object","foo":"boolean"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"object","foo":"boolean"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"object","foo":"boolean"}'
$ json <<< '{"type":"object","foo":"number"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"object","foo":"number"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"object","foo":"number"}'
$ json <<< '{"type":"object","foo":"string"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"object","foo":"string"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"object","foo":"string"}'
$ json <<< '{"type":"object","foo":"object"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"object","foo":"object"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"object","foo":"object"}'
$ json <<< '{"type":"object","foo":"array"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"object","foo":"array"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"object","foo":"array"}'
$ json <<< '{"type":"object","foo":"list"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"object","foo":"list"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"object","foo":"list"}'
$ json <<< '{"type":"object","foo":{}}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"object","foo":{}}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"object","foo":{}}'
$ json <<< '{"type":"object","foo":{"foo":"bar"}}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"object","foo":{"foo":"ba
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"object","foo":{"foo":"bar"}}'
$ json <<< '{"type":"object","foo":[]}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"object","foo":[]}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"object","foo":[]}'
$ json <<< '{"type":"object","foo":["foo","bar"]}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"object","foo":["foo","ba
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"object","foo":["foo","bar"]}'
$ json <<< '{"type":"object","foo":[{"name":"baz","type":"object"}]}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"object","foo":[{"name":"
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"object","foo":[{"name":"baz","type":"object"}]}'
$ json <<< '{"type":"object","foo":["boolean","number"]}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"object","foo":["boolean"
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"object","foo":["boolean","number"]}'
$ json <<< '{"type":"object","args":null}'
json: error: <stdin>:1:25: meta error: invalid "object" object: value of "args" must be an array of "name" objects
json: error: <stdin>:1:25: {"type":"object","args":null}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"object","args":null}'
$ json <<< '{"type":"object","args":false}'
json: error: <stdin>:1:25: meta error: invalid "object" object: value of "args" must be an array of "name" objects
json: error: <stdin>:1:25: {"type":"object","args":false}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"object","args":false}'
$ json <<< '{"type":"object","args":true}'
json: error: <stdin>:1:25: meta error: invalid "object" object: value of "args" must be an array of "name" objects
json: error: <stdin>:1:25: {"type":"object","args":true}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"object","args":true}'
$ json <<< '{"type":"object","args":123}'
json: error: <stdin>:1:25: meta error: invalid "object" object: value of "args" must be an array of "name" objects
json: error: <stdin>:1:25: {"type":"object","args":123}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"object","args":123}'
$ json <<< '{"type":"object","args":"foo"}'
json: error: <stdin>:1:25: meta error: invalid "object" object: value of "args" must be an array of "name" objects
json: error: <stdin>:1:25: {"type":"object","args":"foo"}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"object","args":"foo"}'
$ json <<< '{"type":"object","args":"type"}'
json: error: <stdin>:1:25: meta error: invalid "object" object: value of "args" must be an array of "name" objects
json: error: <stdin>:1:25: {"type":"object","args":"type"}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"object","args":"type"}'
$ json <<< '{"type":"object","args":"null"}'
json: error: <stdin>:1:25: meta error: invalid "object" object: value of "args" must be an array of "name" objects
json: error: <stdin>:1:25: {"type":"object","args":"null"}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"object","args":"null"}'
$ json <<< '{"type":"object","args":"boolean"}'
json: error: <stdin>:1:25: meta error: invalid "object" object: value of "args" must be an array of "name" objects
json: error: <stdin>:1:25: {"type":"object","args":"boolean"}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"object","args":"boolean"}'
$ json <<< '{"type":"object","args":"number"}'
json: error: <stdin>:1:25: meta error: invalid "object" object: value of "args" must be an array of "name" objects
json: error: <stdin>:1:25: {"type":"object","args":"number"}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"object","args":"number"}'
$ json <<< '{"type":"object","args":"string"}'
json: error: <stdin>:1:25: meta error: invalid "object" object: value of "args" must be an array of "name" objects
json: error: <stdin>:1:25: {"type":"object","args":"string"}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"object","args":"string"}'
$ json <<< '{"type":"object","args":"object"}'
json: error: <stdin>:1:25: meta error: invalid "object" object: value of "args" must be an array of "name" objects
json: error: <stdin>:1:25: {"type":"object","args":"object"}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"object","args":"object"}'
$ json <<< '{"type":"object","args":"array"}'
json: error: <stdin>:1:25: meta error: invalid "object" object: value of "args" must be an array of "name" objects
json: error: <stdin>:1:25: {"type":"object","args":"array"}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"object","args":"array"}'
$ json <<< '{"type":"object","args":"list"}'
json: error: <stdin>:1:25: meta error: invalid "object" object: value of "args" must be an array of "name" objects
json: error: <stdin>:1:25: {"type":"object","args":"list"}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"object","args":"list"}'
$ json <<< '{"type":"object","args":{}}'
json: error: <stdin>:1:25: meta error: empty objects are not allowed
json: error: <stdin>:1:25: {"type":"object","args":{}}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"object","args":{}}'
$ json <<< '{"type":"object","args":{"foo":"bar"}}'
json: error: <stdin>:1:26: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:26: {"type":"object","args":{"foo":"bar"}}
json: error: <stdin>:1:26:                          ^
command failed: json <<< '{"type":"object","args":{"foo":"bar"}}'
$ json <<< '{"type":"object","args":[]}'
{
    "type": "object",
    "args": []
}
$ json <<< '{"type":"object","args":["foo","bar"]}'
json: error: <stdin>:1:26: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:26: {"type":"object","args":["foo","bar"]}
json: error: <stdin>:1:26:                          ^
command failed: json <<< '{"type":"object","args":["foo","bar"]}'
$ json <<< '{"type":"object","args":[{"name":"baz","type":"object"}]}'
{
    "type": "object",
    "args": [
        {
            "name": "baz",
            "type": "object"
        }
    ]
}
$ json <<< '{"type":"object","args":["boolean","number"]}'
json: error: <stdin>:1:25: meta error: invalid "object" object: value of "args" must be an array of "name" objects
json: error: <stdin>:1:25: {"type":"object","args":["boolean","number"]}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"object","args":["boolean","number"]}'
$ json <<< '{"type":"array","foo":null}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"array","foo":null}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"array","foo":null}'
$ json <<< '{"type":"array","foo":false}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"array","foo":false}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"array","foo":false}'
$ json <<< '{"type":"array","foo":true}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"array","foo":true}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"array","foo":true}'
$ json <<< '{"type":"array","foo":123}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"array","foo":123}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"array","foo":123}'
$ json <<< '{"type":"array","foo":"foo"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"array","foo":"foo"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"array","foo":"foo"}'
$ json <<< '{"type":"array","foo":"type"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"array","foo":"type"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"array","foo":"type"}'
$ json <<< '{"type":"array","foo":"null"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"array","foo":"null"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"array","foo":"null"}'
$ json <<< '{"type":"array","foo":"boolean"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"array","foo":"boolean"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"array","foo":"boolean"}'
$ json <<< '{"type":"array","foo":"number"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"array","foo":"number"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"array","foo":"number"}'
$ json <<< '{"type":"array","foo":"string"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"array","foo":"string"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"array","foo":"string"}'
$ json <<< '{"type":"array","foo":"object"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"array","foo":"object"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"array","foo":"object"}'
$ json <<< '{"type":"array","foo":"array"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"array","foo":"array"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"array","foo":"array"}'
$ json <<< '{"type":"array","foo":"list"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"array","foo":"list"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"array","foo":"list"}'
$ json <<< '{"type":"array","foo":{}}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"array","foo":{}}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"array","foo":{}}'
$ json <<< '{"type":"array","foo":{"foo":"bar"}}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"array","foo":{"foo":"bar
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"array","foo":{"foo":"bar"}}'
$ json <<< '{"type":"array","foo":[]}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"array","foo":[]}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"array","foo":[]}'
$ json <<< '{"type":"array","foo":["foo","bar"]}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"array","foo":["foo","bar
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"array","foo":["foo","bar"]}'
$ json <<< '{"type":"array","foo":[{"name":"baz","type":"object"}]}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"array","foo":[{"name":"b
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"array","foo":[{"name":"baz","type":"object"}]}'
$ json <<< '{"type":"array","foo":["boolean","number"]}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"array","foo":["boolean",
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"array","foo":["boolean","number"]}'
$ json <<< '{"type":"array","args":null}'
json: error: <stdin>:1:24: meta error: invalid "array" object: value of "args" must be a type or an array of types
json: error: <stdin>:1:24: {"type":"array","args":null}
json: error: <stdin>:1:24:                        ^
command failed: json <<< '{"type":"array","args":null}'
$ json <<< '{"type":"array","args":false}'
json: error: <stdin>:1:24: meta error: invalid "array" object: value of "args" must be a type or an array of types
json: error: <stdin>:1:24: {"type":"array","args":false}
json: error: <stdin>:1:24:                        ^
command failed: json <<< '{"type":"array","args":false}'
$ json <<< '{"type":"array","args":true}'
json: error: <stdin>:1:24: meta error: invalid "array" object: value of "args" must be a type or an array of types
json: error: <stdin>:1:24: {"type":"array","args":true}
json: error: <stdin>:1:24:                        ^
command failed: json <<< '{"type":"array","args":true}'
$ json <<< '{"type":"array","args":123}'
json: error: <stdin>:1:24: meta error: invalid "array" object: value of "args" must be a type or an array of types
json: error: <stdin>:1:24: {"type":"array","args":123}
json: error: <stdin>:1:24:                        ^
command failed: json <<< '{"type":"array","args":123}'
$ json <<< '{"type":"array","args":"foo"}'
json: error: <stdin>:1:24: meta error: invalid "array" object: value of "args" must be a type or an array of types
json: error: <stdin>:1:24: {"type":"array","args":"foo"}
json: error: <stdin>:1:24:                        ^
command failed: json <<< '{"type":"array","args":"foo"}'
$ json <<< '{"type":"array","args":"type"}'
{
    "type": "array",
    "args": "type"
}
$ json <<< '{"type":"array","args":"null"}'
{
    "type": "array",
    "args": "null"
}
$ json <<< '{"type":"array","args":"boolean"}'
{
    "type": "array",
    "args": "boolean"
}
$ json <<< '{"type":"array","args":"number"}'
{
    "type": "array",
    "args": "number"
}
$ json <<< '{"type":"array","args":"string"}'
{
    "type": "array",
    "args": "string"
}
$ json <<< '{"type":"array","args":"object"}'
{
    "type": "array",
    "args": "object"
}
$ json <<< '{"type":"array","args":"array"}'
{
    "type": "array",
    "args": "array"
}
$ json <<< '{"type":"array","args":"list"}'
json: error: <stdin>:1:24: meta error: invalid "array" object: value of "args" must be a type or an array of types
json: error: <stdin>:1:24: {"type":"array","args":"list"}
json: error: <stdin>:1:24:                        ^
command failed: json <<< '{"type":"array","args":"list"}'
$ json <<< '{"type":"array","args":{}}'
json: error: <stdin>:1:24: meta error: empty objects are not allowed
json: error: <stdin>:1:24: {"type":"array","args":{}}
json: error: <stdin>:1:24:                        ^
command failed: json <<< '{"type":"array","args":{}}'
$ json <<< '{"type":"array","args":{"foo":"bar"}}'
json: error: <stdin>:1:25: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:25: {"type":"array","args":{"foo":"bar"}}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"array","args":{"foo":"bar"}}'
$ json <<< '{"type":"array","args":[]}'
{
    "type": "array",
    "args": []
}
$ json <<< '{"type":"array","args":["foo","bar"]}'
json: error: <stdin>:1:25: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:25: {"type":"array","args":["foo","bar"]}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"array","args":["foo","bar"]}'
$ json <<< '{"type":"array","args":[{"name":"baz","type":"object"}]}'
json: error: <stdin>:1:24: meta error: invalid "array" object: value of "args" must be a type or an array of types
json: error: <stdin>:1:24: {"type":"array","args":[{"name":"baz","type":"object"}]}
json: error: <stdin>:1:24:                        ^
command failed: json <<< '{"type":"array","args":[{"name":"baz","type":"object"}]}'
$ json <<< '{"type":"array","args":["boolean","number"]}'
{
    "type": "array",
    "args": [
        "boolean",
        "number"
    ]
}
$ json <<< '{"type":"list","foo":null}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"list","foo":null}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"list","foo":null}'
$ json <<< '{"type":"list","foo":false}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"list","foo":false}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"list","foo":false}'
$ json <<< '{"type":"list","foo":true}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"list","foo":true}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"list","foo":true}'
$ json <<< '{"type":"list","foo":123}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"list","foo":123}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"list","foo":123}'
$ json <<< '{"type":"list","foo":"foo"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"list","foo":"foo"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"list","foo":"foo"}'
$ json <<< '{"type":"list","foo":"type"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"list","foo":"type"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"list","foo":"type"}'
$ json <<< '{"type":"list","foo":"null"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"list","foo":"null"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"list","foo":"null"}'
$ json <<< '{"type":"list","foo":"boolean"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"list","foo":"boolean"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"list","foo":"boolean"}'
$ json <<< '{"type":"list","foo":"number"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"list","foo":"number"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"list","foo":"number"}'
$ json <<< '{"type":"list","foo":"string"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"list","foo":"string"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"list","foo":"string"}'
$ json <<< '{"type":"list","foo":"object"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"list","foo":"object"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"list","foo":"object"}'
$ json <<< '{"type":"list","foo":"array"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"list","foo":"array"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"list","foo":"array"}'
$ json <<< '{"type":"list","foo":"list"}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"list","foo":"list"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"list","foo":"list"}'
$ json <<< '{"type":"list","foo":{}}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"list","foo":{}}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"list","foo":{}}'
$ json <<< '{"type":"list","foo":{"foo":"bar"}}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"list","foo":{"foo":"bar"
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"list","foo":{"foo":"bar"}}'
$ json <<< '{"type":"list","foo":[]}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"list","foo":[]}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"list","foo":[]}'
$ json <<< '{"type":"list","foo":["foo","bar"]}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"list","foo":["foo","bar"
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"list","foo":["foo","bar"]}'
$ json <<< '{"type":"list","foo":[{"name":"baz","type":"object"}]}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"list","foo":[{"name":"ba
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"list","foo":[{"name":"baz","type":"object"}]}'
$ json <<< '{"type":"list","foo":["boolean","number"]}'
json: error: <stdin>:1:1: meta error: invalid "type" object: key of second argument is not "args"
json: error: <stdin>:1:1: {"type":"list","foo":["boolean","
json: error: <stdin>:1:1: ^
command failed: json <<< '{"type":"list","foo":["boolean","number"]}'
$ json <<< '{"type":"list","args":null}'
json: error: <stdin>:1:23: meta error: invalid "list" object: value of "args" must be an array of types
json: error: <stdin>:1:23: {"type":"list","args":null}
json: error: <stdin>:1:23:                       ^
command failed: json <<< '{"type":"list","args":null}'
$ json <<< '{"type":"list","args":false}'
json: error: <stdin>:1:23: meta error: invalid "list" object: value of "args" must be an array of types
json: error: <stdin>:1:23: {"type":"list","args":false}
json: error: <stdin>:1:23:                       ^
command failed: json <<< '{"type":"list","args":false}'
$ json <<< '{"type":"list","args":true}'
json: error: <stdin>:1:23: meta error: invalid "list" object: value of "args" must be an array of types
json: error: <stdin>:1:23: {"type":"list","args":true}
json: error: <stdin>:1:23:                       ^
command failed: json <<< '{"type":"list","args":true}'
$ json <<< '{"type":"list","args":123}'
json: error: <stdin>:1:23: meta error: invalid "list" object: value of "args" must be an array of types
json: error: <stdin>:1:23: {"type":"list","args":123}
json: error: <stdin>:1:23:                       ^
command failed: json <<< '{"type":"list","args":123}'
$ json <<< '{"type":"list","args":"foo"}'
json: error: <stdin>:1:23: meta error: invalid "list" object: value of "args" must be an array of types
json: error: <stdin>:1:23: {"type":"list","args":"foo"}
json: error: <stdin>:1:23:                       ^
command failed: json <<< '{"type":"list","args":"foo"}'
$ json <<< '{"type":"list","args":"type"}'
json: error: <stdin>:1:23: meta error: invalid "list" object: value of "args" must be an array of types
json: error: <stdin>:1:23: {"type":"list","args":"type"}
json: error: <stdin>:1:23:                       ^
command failed: json <<< '{"type":"list","args":"type"}'
$ json <<< '{"type":"list","args":"null"}'
json: error: <stdin>:1:23: meta error: invalid "list" object: value of "args" must be an array of types
json: error: <stdin>:1:23: {"type":"list","args":"null"}
json: error: <stdin>:1:23:                       ^
command failed: json <<< '{"type":"list","args":"null"}'
$ json <<< '{"type":"list","args":"boolean"}'
json: error: <stdin>:1:23: meta error: invalid "list" object: value of "args" must be an array of types
json: error: <stdin>:1:23: {"type":"list","args":"boolean"}
json: error: <stdin>:1:23:                       ^
command failed: json <<< '{"type":"list","args":"boolean"}'
$ json <<< '{"type":"list","args":"number"}'
json: error: <stdin>:1:23: meta error: invalid "list" object: value of "args" must be an array of types
json: error: <stdin>:1:23: {"type":"list","args":"number"}
json: error: <stdin>:1:23:                       ^
command failed: json <<< '{"type":"list","args":"number"}'
$ json <<< '{"type":"list","args":"string"}'
json: error: <stdin>:1:23: meta error: invalid "list" object: value of "args" must be an array of types
json: error: <stdin>:1:23: {"type":"list","args":"string"}
json: error: <stdin>:1:23:                       ^
command failed: json <<< '{"type":"list","args":"string"}'
$ json <<< '{"type":"list","args":"object"}'
json: error: <stdin>:1:23: meta error: invalid "list" object: value of "args" must be an array of types
json: error: <stdin>:1:23: {"type":"list","args":"object"}
json: error: <stdin>:1:23:                       ^
command failed: json <<< '{"type":"list","args":"object"}'
$ json <<< '{"type":"list","args":"array"}'
json: error: <stdin>:1:23: meta error: invalid "list" object: value of "args" must be an array of types
json: error: <stdin>:1:23: {"type":"list","args":"array"}
json: error: <stdin>:1:23:                       ^
command failed: json <<< '{"type":"list","args":"array"}'
$ json <<< '{"type":"list","args":"list"}'
json: error: <stdin>:1:23: meta error: invalid "list" object: value of "args" must be an array of types
json: error: <stdin>:1:23: {"type":"list","args":"list"}
json: error: <stdin>:1:23:                       ^
command failed: json <<< '{"type":"list","args":"list"}'
$ json <<< '{"type":"list","args":{}}'
json: error: <stdin>:1:23: meta error: empty objects are not allowed
json: error: <stdin>:1:23: {"type":"list","args":{}}
json: error: <stdin>:1:23:                       ^
command failed: json <<< '{"type":"list","args":{}}'
$ json <<< '{"type":"list","args":{"foo":"bar"}}'
json: error: <stdin>:1:24: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:24: {"type":"list","args":{"foo":"bar"}}
json: error: <stdin>:1:24:                        ^
command failed: json <<< '{"type":"list","args":{"foo":"bar"}}'
$ json <<< '{"type":"list","args":[]}'
{
    "type": "list",
    "args": [],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["foo","bar"]}'
json: error: <stdin>:1:24: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:24: {"type":"list","args":["foo","bar"]}
json: error: <stdin>:1:24:                        ^
command failed: json <<< '{"type":"list","args":["foo","bar"]}'
$ json <<< '{"type":"list","args":[{"name":"baz","type":"object"}]}'
json: error: <stdin>:1:23: meta error: invalid "list" object: value of "args" must be an array of types
json: error: <stdin>:1:23: {"type":"list","args":[{"name":"baz","type":"object"}]}
json: error: <stdin>:1:23:                       ^
command failed: json <<< '{"type":"list","args":[{"name":"baz","type":"object"}]}'
$ json <<< '{"type":"list","args":["boolean","number"]}'
{
    "type": "list",
    "args": [
        "boolean",
        "number"
    ],
    "attr": {
        "any": {
            "sym": "boolean",
            "lo": null,
            "eq": {
                "val": "boolean",
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": "number",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$

--[ plain ]---------------------------------------------------------------------

#
# # meta command:
# $ for v in null false true 123 '"foo"' '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '"list"' '{}' '{"foo":"bar"}' '[]' '["foo","bar"]'; do T='{"plain":'"$v"'}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test "$?" -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"plain":null}'
{
    "plain": null
}
$ json <<< '{"plain":false}'
{
    "plain": false
}
$ json <<< '{"plain":true}'
{
    "plain": true
}
$ json <<< '{"plain":123}'
{
    "plain": 123
}
$ json <<< '{"plain":"foo"}'
{
    "plain": "foo"
}
$ json <<< '{"plain":"type"}'
{
    "plain": "type"
}
$ json <<< '{"plain":"null"}'
{
    "plain": "null"
}
$ json <<< '{"plain":"boolean"}'
{
    "plain": "boolean"
}
$ json <<< '{"plain":"number"}'
{
    "plain": "number"
}
$ json <<< '{"plain":"string"}'
{
    "plain": "string"
}
$ json <<< '{"plain":"object"}'
{
    "plain": "object"
}
$ json <<< '{"plain":"array"}'
{
    "plain": "array"
}
$ json <<< '{"plain":"list"}'
{
    "plain": "list"
}
$ json <<< '{"plain":{}}'
json: error: <stdin>:1:10: meta error: invalid "plain" object: value must be `null', a boolean, a number or a string
json: error: <stdin>:1:10: {"plain":{}}
json: error: <stdin>:1:10:          ^
command failed: json <<< '{"plain":{}}'
$ json <<< '{"plain":{"foo":"bar"}}'
json: error: <stdin>:1:10: meta error: invalid "plain" object: value must be `null', a boolean, a number or a string
json: error: <stdin>:1:10: {"plain":{"foo":"bar"}}
json: error: <stdin>:1:10:          ^
command failed: json <<< '{"plain":{"foo":"bar"}}'
$ json <<< '{"plain":[]}'
json: error: <stdin>:1:10: meta error: invalid "plain" object: value must be `null', a boolean, a number or a string
json: error: <stdin>:1:10: {"plain":[]}
json: error: <stdin>:1:10:          ^
command failed: json <<< '{"plain":[]}'
$ json <<< '{"plain":["foo","bar"]}'
json: error: <stdin>:1:10: meta error: invalid "plain" object: value must be `null', a boolean, a number or a string
json: error: <stdin>:1:10: {"plain":["foo","bar"]}
json: error: <stdin>:1:10:          ^
command failed: json <<< '{"plain":["foo","bar"]}'
$

--[ plain2 ]--------------------------------------------------------------------

#
# # meta command:
# $ for v in null false true 123 '"foo"' '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '"list"' '{}' '{"foo":"bar"}' '[]' '["foo","bar"]'; do T='{"plain":'"$v"',"foo":"bar"}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test "$?" -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"plain":null,"foo":"bar"}'
json: error: <stdin>:1:1: meta error: invalid "plain" object: arguments not of size one
json: error: <stdin>:1:1: {"plain":null,"foo":"bar"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"plain":null,"foo":"bar"}'
$ json <<< '{"plain":false,"foo":"bar"}'
json: error: <stdin>:1:1: meta error: invalid "plain" object: arguments not of size one
json: error: <stdin>:1:1: {"plain":false,"foo":"bar"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"plain":false,"foo":"bar"}'
$ json <<< '{"plain":true,"foo":"bar"}'
json: error: <stdin>:1:1: meta error: invalid "plain" object: arguments not of size one
json: error: <stdin>:1:1: {"plain":true,"foo":"bar"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"plain":true,"foo":"bar"}'
$ json <<< '{"plain":123,"foo":"bar"}'
json: error: <stdin>:1:1: meta error: invalid "plain" object: arguments not of size one
json: error: <stdin>:1:1: {"plain":123,"foo":"bar"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"plain":123,"foo":"bar"}'
$ json <<< '{"plain":"foo","foo":"bar"}'
json: error: <stdin>:1:1: meta error: invalid "plain" object: arguments not of size one
json: error: <stdin>:1:1: {"plain":"foo","foo":"bar"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"plain":"foo","foo":"bar"}'
$ json <<< '{"plain":"type","foo":"bar"}'
json: error: <stdin>:1:1: meta error: invalid "plain" object: arguments not of size one
json: error: <stdin>:1:1: {"plain":"type","foo":"bar"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"plain":"type","foo":"bar"}'
$ json <<< '{"plain":"null","foo":"bar"}'
json: error: <stdin>:1:1: meta error: invalid "plain" object: arguments not of size one
json: error: <stdin>:1:1: {"plain":"null","foo":"bar"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"plain":"null","foo":"bar"}'
$ json <<< '{"plain":"boolean","foo":"bar"}'
json: error: <stdin>:1:1: meta error: invalid "plain" object: arguments not of size one
json: error: <stdin>:1:1: {"plain":"boolean","foo":"bar"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"plain":"boolean","foo":"bar"}'
$ json <<< '{"plain":"number","foo":"bar"}'
json: error: <stdin>:1:1: meta error: invalid "plain" object: arguments not of size one
json: error: <stdin>:1:1: {"plain":"number","foo":"bar"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"plain":"number","foo":"bar"}'
$ json <<< '{"plain":"string","foo":"bar"}'
json: error: <stdin>:1:1: meta error: invalid "plain" object: arguments not of size one
json: error: <stdin>:1:1: {"plain":"string","foo":"bar"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"plain":"string","foo":"bar"}'
$ json <<< '{"plain":"object","foo":"bar"}'
json: error: <stdin>:1:1: meta error: invalid "plain" object: arguments not of size one
json: error: <stdin>:1:1: {"plain":"object","foo":"bar"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"plain":"object","foo":"bar"}'
$ json <<< '{"plain":"array","foo":"bar"}'
json: error: <stdin>:1:1: meta error: invalid "plain" object: arguments not of size one
json: error: <stdin>:1:1: {"plain":"array","foo":"bar"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"plain":"array","foo":"bar"}'
$ json <<< '{"plain":"list","foo":"bar"}'
json: error: <stdin>:1:1: meta error: invalid "plain" object: arguments not of size one
json: error: <stdin>:1:1: {"plain":"list","foo":"bar"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"plain":"list","foo":"bar"}'
$ json <<< '{"plain":{},"foo":"bar"}'
json: error: <stdin>:1:1: meta error: invalid "plain" object: arguments not of size one
json: error: <stdin>:1:1: {"plain":{},"foo":"bar"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"plain":{},"foo":"bar"}'
$ json <<< '{"plain":{"foo":"bar"},"foo":"bar"}'
json: error: <stdin>:1:1: meta error: invalid "plain" object: arguments not of size one
json: error: <stdin>:1:1: {"plain":{"foo":"bar"},"foo":"bar
json: error: <stdin>:1:1: ^
command failed: json <<< '{"plain":{"foo":"bar"},"foo":"bar"}'
$ json <<< '{"plain":[],"foo":"bar"}'
json: error: <stdin>:1:1: meta error: invalid "plain" object: arguments not of size one
json: error: <stdin>:1:1: {"plain":[],"foo":"bar"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"plain":[],"foo":"bar"}'
$ json <<< '{"plain":["foo","bar"],"foo":"bar"}'
json: error: <stdin>:1:1: meta error: invalid "plain" object: arguments not of size one
json: error: <stdin>:1:1: {"plain":["foo","bar"],"foo":"bar
json: error: <stdin>:1:1: ^
command failed: json <<< '{"plain":["foo","bar"],"foo":"bar"}'
$

--[ name ]----------------------------------------------------------------------

#
# # meta command:
# $ for v in null false true 123 '"foo"' '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '"list"' '{}' '{"foo":"bar"}' '[]' '["foo","bar"]'; do T='{"name":'"$v"'}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test "$?" -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"name":null}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":null}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":null}'
$ json <<< '{"name":false}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":false}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":false}'
$ json <<< '{"name":true}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":true}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":true}'
$ json <<< '{"name":123}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":123}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":123}'
$ json <<< '{"name":"foo"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"foo"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"foo"}'
$ json <<< '{"name":"type"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"type"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"type"}'
$ json <<< '{"name":"null"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"null"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"null"}'
$ json <<< '{"name":"boolean"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"boolean"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"boolean"}'
$ json <<< '{"name":"number"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"number"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"number"}'
$ json <<< '{"name":"string"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"string"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"string"}'
$ json <<< '{"name":"object"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"object"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"object"}'
$ json <<< '{"name":"array"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"array"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"array"}'
$ json <<< '{"name":"list"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"list"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"list"}'
$ json <<< '{"name":{}}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":{}}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":{}}'
$ json <<< '{"name":{"foo":"bar"}}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":{"foo":"bar"}}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":{"foo":"bar"}}'
$ json <<< '{"name":[]}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":[]}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":[]}'
$ json <<< '{"name":["foo","bar"]}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":["foo","bar"]}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":["foo","bar"]}'
$

--[ name2 ]---------------------------------------------------------------------

#
# # meta command:
# $ for v in null false true 123 '"foo"' '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '"list"' '{}' '{"foo":"bar"}' '[]' '["foo","bar"]'; do for n in '"fuu"' '"type"'; do T='{"name":"faa",'"$n"':'"$v"'}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test "$?" -ne 0 && echo "command failed: $c"; done; done
#
$ json <<< '{"name":"faa","fuu":null}'
json: error: <stdin>:1:1: meta error: invalid "name" object: key of second argument is not "type"
json: error: <stdin>:1:1: {"name":"faa","fuu":null}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","fuu":null}'
$ json <<< '{"name":"faa","type":null}'
json: error: <stdin>:1:22: meta error: invalid "name" object: its "type" argument must be a type
json: error: <stdin>:1:22: {"name":"faa","type":null}
json: error: <stdin>:1:22:                      ^
command failed: json <<< '{"name":"faa","type":null}'
$ json <<< '{"name":"faa","fuu":false}'
json: error: <stdin>:1:1: meta error: invalid "name" object: key of second argument is not "type"
json: error: <stdin>:1:1: {"name":"faa","fuu":false}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","fuu":false}'
$ json <<< '{"name":"faa","type":false}'
json: error: <stdin>:1:22: meta error: invalid "name" object: its "type" argument must be a type
json: error: <stdin>:1:22: {"name":"faa","type":false}
json: error: <stdin>:1:22:                      ^
command failed: json <<< '{"name":"faa","type":false}'
$ json <<< '{"name":"faa","fuu":true}'
json: error: <stdin>:1:1: meta error: invalid "name" object: key of second argument is not "type"
json: error: <stdin>:1:1: {"name":"faa","fuu":true}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","fuu":true}'
$ json <<< '{"name":"faa","type":true}'
json: error: <stdin>:1:22: meta error: invalid "name" object: its "type" argument must be a type
json: error: <stdin>:1:22: {"name":"faa","type":true}
json: error: <stdin>:1:22:                      ^
command failed: json <<< '{"name":"faa","type":true}'
$ json <<< '{"name":"faa","fuu":123}'
json: error: <stdin>:1:1: meta error: invalid "name" object: key of second argument is not "type"
json: error: <stdin>:1:1: {"name":"faa","fuu":123}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","fuu":123}'
$ json <<< '{"name":"faa","type":123}'
json: error: <stdin>:1:22: meta error: invalid "name" object: its "type" argument must be a type
json: error: <stdin>:1:22: {"name":"faa","type":123}
json: error: <stdin>:1:22:                      ^
command failed: json <<< '{"name":"faa","type":123}'
$ json <<< '{"name":"faa","fuu":"foo"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: key of second argument is not "type"
json: error: <stdin>:1:1: {"name":"faa","fuu":"foo"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","fuu":"foo"}'
$ json <<< '{"name":"faa","type":"foo"}'
json: error: <stdin>:1:22: meta error: invalid "name" object: its "type" argument must be a type
json: error: <stdin>:1:22: {"name":"faa","type":"foo"}
json: error: <stdin>:1:22:                      ^
command failed: json <<< '{"name":"faa","type":"foo"}'
$ json <<< '{"name":"faa","fuu":"type"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: key of second argument is not "type"
json: error: <stdin>:1:1: {"name":"faa","fuu":"type"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","fuu":"type"}'
$ json <<< '{"name":"faa","type":"type"}'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: {"name":"faa","type":"type"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","type":"type"}'
$ json <<< '{"name":"faa","fuu":"null"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: key of second argument is not "type"
json: error: <stdin>:1:1: {"name":"faa","fuu":"null"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","fuu":"null"}'
$ json <<< '{"name":"faa","type":"null"}'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: {"name":"faa","type":"null"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","type":"null"}'
$ json <<< '{"name":"faa","fuu":"boolean"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: key of second argument is not "type"
json: error: <stdin>:1:1: {"name":"faa","fuu":"boolean"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","fuu":"boolean"}'
$ json <<< '{"name":"faa","type":"boolean"}'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: {"name":"faa","type":"boolean"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","type":"boolean"}'
$ json <<< '{"name":"faa","fuu":"number"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: key of second argument is not "type"
json: error: <stdin>:1:1: {"name":"faa","fuu":"number"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","fuu":"number"}'
$ json <<< '{"name":"faa","type":"number"}'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: {"name":"faa","type":"number"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","type":"number"}'
$ json <<< '{"name":"faa","fuu":"string"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: key of second argument is not "type"
json: error: <stdin>:1:1: {"name":"faa","fuu":"string"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","fuu":"string"}'
$ json <<< '{"name":"faa","type":"string"}'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: {"name":"faa","type":"string"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","type":"string"}'
$ json <<< '{"name":"faa","fuu":"object"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: key of second argument is not "type"
json: error: <stdin>:1:1: {"name":"faa","fuu":"object"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","fuu":"object"}'
$ json <<< '{"name":"faa","type":"object"}'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: {"name":"faa","type":"object"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","type":"object"}'
$ json <<< '{"name":"faa","fuu":"array"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: key of second argument is not "type"
json: error: <stdin>:1:1: {"name":"faa","fuu":"array"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","fuu":"array"}'
$ json <<< '{"name":"faa","type":"array"}'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: {"name":"faa","type":"array"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","type":"array"}'
$ json <<< '{"name":"faa","fuu":"list"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: key of second argument is not "type"
json: error: <stdin>:1:1: {"name":"faa","fuu":"list"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","fuu":"list"}'
$ json <<< '{"name":"faa","type":"list"}'
json: error: <stdin>:1:22: meta error: invalid "name" object: its "type" argument must be a type
json: error: <stdin>:1:22: {"name":"faa","type":"list"}
json: error: <stdin>:1:22:                      ^
command failed: json <<< '{"name":"faa","type":"list"}'
$ json <<< '{"name":"faa","fuu":{}}'
json: error: <stdin>:1:1: meta error: invalid "name" object: key of second argument is not "type"
json: error: <stdin>:1:1: {"name":"faa","fuu":{}}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","fuu":{}}'
$ json <<< '{"name":"faa","type":{}}'
json: error: <stdin>:1:22: meta error: empty objects are not allowed
json: error: <stdin>:1:22: {"name":"faa","type":{}}
json: error: <stdin>:1:22:                      ^
command failed: json <<< '{"name":"faa","type":{}}'
$ json <<< '{"name":"faa","fuu":{"foo":"bar"}}'
json: error: <stdin>:1:1: meta error: invalid "name" object: key of second argument is not "type"
json: error: <stdin>:1:1: {"name":"faa","fuu":{"foo":"bar"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","fuu":{"foo":"bar"}}'
$ json <<< '{"name":"faa","type":{"foo":"bar"}}'
json: error: <stdin>:1:23: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:23: {"name":"faa","type":{"foo":"bar"}}
json: error: <stdin>:1:23:                       ^
command failed: json <<< '{"name":"faa","type":{"foo":"bar"}}'
$ json <<< '{"name":"faa","fuu":[]}'
json: error: <stdin>:1:1: meta error: invalid "name" object: key of second argument is not "type"
json: error: <stdin>:1:1: {"name":"faa","fuu":[]}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","fuu":[]}'
$ json <<< '{"name":"faa","type":[]}'
json: error: <stdin>:1:22: meta error: invalid "name" object: its "type" argument must be a type
json: error: <stdin>:1:22: {"name":"faa","type":[]}
json: error: <stdin>:1:22:                      ^
command failed: json <<< '{"name":"faa","type":[]}'
$ json <<< '{"name":"faa","fuu":["foo","bar"]}'
json: error: <stdin>:1:1: meta error: invalid "name" object: key of second argument is not "type"
json: error: <stdin>:1:1: {"name":"faa","fuu":["foo","bar"]
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","fuu":["foo","bar"]}'
$ json <<< '{"name":"faa","type":["foo","bar"]}'
json: error: <stdin>:1:23: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:23: {"name":"faa","type":["foo","bar"]}
json: error: <stdin>:1:23:                       ^
command failed: json <<< '{"name":"faa","type":["foo","bar"]}'
$

--[ name3 ]---------------------------------------------------------------------

#
# # meta command:
# $ for v in null false true 123 '"foo"' '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '"list"' '{}' '{"foo":"bar"}' '[]' '["foo","bar"]'; do T='{"name":"faa","type":"type","fuu":'"$v"'}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test "$?" -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"name":"faa","type":"type","fuu":null}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"faa","type":"type","fuu"
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","type":"type","fuu":null}'
$ json <<< '{"name":"faa","type":"type","fuu":false}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"faa","type":"type","fuu"
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","type":"type","fuu":false}'
$ json <<< '{"name":"faa","type":"type","fuu":true}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"faa","type":"type","fuu"
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","type":"type","fuu":true}'
$ json <<< '{"name":"faa","type":"type","fuu":123}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"faa","type":"type","fuu"
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","type":"type","fuu":123}'
$ json <<< '{"name":"faa","type":"type","fuu":"foo"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"faa","type":"type","fuu"
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","type":"type","fuu":"foo"}'
$ json <<< '{"name":"faa","type":"type","fuu":"type"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"faa","type":"type","fuu"
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","type":"type","fuu":"type"}'
$ json <<< '{"name":"faa","type":"type","fuu":"null"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"faa","type":"type","fuu"
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","type":"type","fuu":"null"}'
$ json <<< '{"name":"faa","type":"type","fuu":"boolean"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"faa","type":"type","fuu"
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","type":"type","fuu":"boolean"}'
$ json <<< '{"name":"faa","type":"type","fuu":"number"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"faa","type":"type","fuu"
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","type":"type","fuu":"number"}'
$ json <<< '{"name":"faa","type":"type","fuu":"string"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"faa","type":"type","fuu"
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","type":"type","fuu":"string"}'
$ json <<< '{"name":"faa","type":"type","fuu":"object"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"faa","type":"type","fuu"
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","type":"type","fuu":"object"}'
$ json <<< '{"name":"faa","type":"type","fuu":"array"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"faa","type":"type","fuu"
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","type":"type","fuu":"array"}'
$ json <<< '{"name":"faa","type":"type","fuu":"list"}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"faa","type":"type","fuu"
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","type":"type","fuu":"list"}'
$ json <<< '{"name":"faa","type":"type","fuu":{}}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"faa","type":"type","fuu"
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","type":"type","fuu":{}}'
$ json <<< '{"name":"faa","type":"type","fuu":{"foo":"bar"}}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"faa","type":"type","fuu"
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","type":"type","fuu":{"foo":"bar"}}'
$ json <<< '{"name":"faa","type":"type","fuu":[]}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"faa","type":"type","fuu"
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","type":"type","fuu":[]}'
$ json <<< '{"name":"faa","type":"type","fuu":["foo","bar"]}'
json: error: <stdin>:1:1: meta error: invalid "name" object: arguments not of size two
json: error: <stdin>:1:1: {"name":"faa","type":"type","fuu"
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"faa","type":"type","fuu":["foo","bar"]}'
$

--[ name4 ]---------------------------------------------------------------------

#
# # meta command:
# $ for v in null false true 123 '"foo"' '{}' '[]' ; do T='{"name":'"$v"',"type":"type"}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test "$?" -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"name":null,"type":"type"}'
json: error: <stdin>:1:9: meta error: invalid "name" object: value of "name" must be a string
json: error: <stdin>:1:9: {"name":null,"type":"type"}
json: error: <stdin>:1:9:         ^
command failed: json <<< '{"name":null,"type":"type"}'
$ json <<< '{"name":false,"type":"type"}'
json: error: <stdin>:1:9: meta error: invalid "name" object: value of "name" must be a string
json: error: <stdin>:1:9: {"name":false,"type":"type"}
json: error: <stdin>:1:9:         ^
command failed: json <<< '{"name":false,"type":"type"}'
$ json <<< '{"name":true,"type":"type"}'
json: error: <stdin>:1:9: meta error: invalid "name" object: value of "name" must be a string
json: error: <stdin>:1:9: {"name":true,"type":"type"}
json: error: <stdin>:1:9:         ^
command failed: json <<< '{"name":true,"type":"type"}'
$ json <<< '{"name":123,"type":"type"}'
json: error: <stdin>:1:9: meta error: invalid "name" object: value of "name" must be a string
json: error: <stdin>:1:9: {"name":123,"type":"type"}
json: error: <stdin>:1:9:         ^
command failed: json <<< '{"name":123,"type":"type"}'
$ json <<< '{"name":"foo","type":"type"}'
json: error: <stdin>:1:1: meta error: invalid top value: it must be a type or an array of "name" objects
json: error: <stdin>:1:1: {"name":"foo","type":"type"}
json: error: <stdin>:1:1: ^
command failed: json <<< '{"name":"foo","type":"type"}'
$ json <<< '{"name":{},"type":"type"}'
json: error: <stdin>:1:9: meta error: invalid "name" object: value of "name" must be a string
json: error: <stdin>:1:9: {"name":{},"type":"type"}
json: error: <stdin>:1:9:         ^
command failed: json <<< '{"name":{},"type":"type"}'
$ json <<< '{"name":[],"type":"type"}'
json: error: <stdin>:1:9: meta error: invalid "name" object: value of "name" must be a string
json: error: <stdin>:1:9: {"name":[],"type":"type"}
json: error: <stdin>:1:9:         ^
command failed: json <<< '{"name":[],"type":"type"}'
$

--[ object ]--------------------------------------------------------------------

#
# # meta command:
# $ for v in null false true 123 '"foo"' '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '"list"' '{}' '{"foo":"bar"}' '[]' '["foo","bar"]'; do T='{"type":"object","args":[{"name":"baz","type":'"$v"'}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test "$?" -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"object","args":[{"name":"baz","type":null}]}'
json: error: <stdin>:1:47: meta error: invalid "name" object: its "type" argument must be a type
json: error: <stdin>:1:47: t","args":[{"name":"baz","type":null}]}
json: error: <stdin>:1:47:                                 ^
command failed: json <<< '{"type":"object","args":[{"name":"baz","type":null}]}'
$ json <<< '{"type":"object","args":[{"name":"baz","type":false}]}'
json: error: <stdin>:1:47: meta error: invalid "name" object: its "type" argument must be a type
json: error: <stdin>:1:47: t","args":[{"name":"baz","type":false}]}
json: error: <stdin>:1:47:                                 ^
command failed: json <<< '{"type":"object","args":[{"name":"baz","type":false}]}'
$ json <<< '{"type":"object","args":[{"name":"baz","type":true}]}'
json: error: <stdin>:1:47: meta error: invalid "name" object: its "type" argument must be a type
json: error: <stdin>:1:47: t","args":[{"name":"baz","type":true}]}
json: error: <stdin>:1:47:                                 ^
command failed: json <<< '{"type":"object","args":[{"name":"baz","type":true}]}'
$ json <<< '{"type":"object","args":[{"name":"baz","type":123}]}'
json: error: <stdin>:1:47: meta error: invalid "name" object: its "type" argument must be a type
json: error: <stdin>:1:47: t","args":[{"name":"baz","type":123}]}
json: error: <stdin>:1:47:                                 ^
command failed: json <<< '{"type":"object","args":[{"name":"baz","type":123}]}'
$ json <<< '{"type":"object","args":[{"name":"baz","type":"foo"}]}'
json: error: <stdin>:1:47: meta error: invalid "name" object: its "type" argument must be a type
json: error: <stdin>:1:47: t","args":[{"name":"baz","type":"foo"}]}
json: error: <stdin>:1:47:                                 ^
command failed: json <<< '{"type":"object","args":[{"name":"baz","type":"foo"}]}'
$ json <<< '{"type":"object","args":[{"name":"baz","type":"type"}]}'
{
    "type": "object",
    "args": [
        {
            "name": "baz",
            "type": "type"
        }
    ]
}
$ json <<< '{"type":"object","args":[{"name":"baz","type":"null"}]}'
{
    "type": "object",
    "args": [
        {
            "name": "baz",
            "type": "null"
        }
    ]
}
$ json <<< '{"type":"object","args":[{"name":"baz","type":"boolean"}]}'
{
    "type": "object",
    "args": [
        {
            "name": "baz",
            "type": "boolean"
        }
    ]
}
$ json <<< '{"type":"object","args":[{"name":"baz","type":"number"}]}'
{
    "type": "object",
    "args": [
        {
            "name": "baz",
            "type": "number"
        }
    ]
}
$ json <<< '{"type":"object","args":[{"name":"baz","type":"string"}]}'
{
    "type": "object",
    "args": [
        {
            "name": "baz",
            "type": "string"
        }
    ]
}
$ json <<< '{"type":"object","args":[{"name":"baz","type":"object"}]}'
{
    "type": "object",
    "args": [
        {
            "name": "baz",
            "type": "object"
        }
    ]
}
$ json <<< '{"type":"object","args":[{"name":"baz","type":"array"}]}'
{
    "type": "object",
    "args": [
        {
            "name": "baz",
            "type": "array"
        }
    ]
}
$ json <<< '{"type":"object","args":[{"name":"baz","type":"list"}]}'
json: error: <stdin>:1:47: meta error: invalid "name" object: its "type" argument must be a type
json: error: <stdin>:1:47: t","args":[{"name":"baz","type":"list"}]}
json: error: <stdin>:1:47:                                 ^
command failed: json <<< '{"type":"object","args":[{"name":"baz","type":"list"}]}'
$ json <<< '{"type":"object","args":[{"name":"baz","type":{}}]}'
json: error: <stdin>:1:47: meta error: empty objects are not allowed
json: error: <stdin>:1:47: t","args":[{"name":"baz","type":{}}]}
json: error: <stdin>:1:47:                                 ^
command failed: json <<< '{"type":"object","args":[{"name":"baz","type":{}}]}'
$ json <<< '{"type":"object","args":[{"name":"baz","type":{"foo":"bar"}}]}'
json: error: <stdin>:1:48: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:48: ","args":[{"name":"baz","type":{"foo":"bar"}}]}
json: error: <stdin>:1:48:                                 ^
command failed: json <<< '{"type":"object","args":[{"name":"baz","type":{"foo":"bar"}}]}'
$ json <<< '{"type":"object","args":[{"name":"baz","type":[]}]}'
json: error: <stdin>:1:47: meta error: invalid "name" object: its "type" argument must be a type
json: error: <stdin>:1:47: t","args":[{"name":"baz","type":[]}]}
json: error: <stdin>:1:47:                                 ^
command failed: json <<< '{"type":"object","args":[{"name":"baz","type":[]}]}'
$ json <<< '{"type":"object","args":[{"name":"baz","type":["foo","bar"]}]}'
json: error: <stdin>:1:48: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:48: ","args":[{"name":"baz","type":["foo","bar"]}]}
json: error: <stdin>:1:48:                                 ^
command failed: json <<< '{"type":"object","args":[{"name":"baz","type":["foo","bar"]}]}'
$

--[ open-array ]----------------------------------------------------------------

#
# # meta command:
# $ for v in null false true 123 '"foo"' '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '"list"' '{}' '{"foo":"bar"}' '[]' '["foo","bar"]' '{"plain":false}' '{"type":"object","args":[]}' '{"type":"array","args":"type"}' '{"type":"array","args":[]}'; do T='{"type":"array","args":'"$v"'}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test "$?" -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"array","args":null}'
json: error: <stdin>:1:24: meta error: invalid "array" object: value of "args" must be a type or an array of types
json: error: <stdin>:1:24: {"type":"array","args":null}
json: error: <stdin>:1:24:                        ^
command failed: json <<< '{"type":"array","args":null}'
$ json <<< '{"type":"array","args":false}'
json: error: <stdin>:1:24: meta error: invalid "array" object: value of "args" must be a type or an array of types
json: error: <stdin>:1:24: {"type":"array","args":false}
json: error: <stdin>:1:24:                        ^
command failed: json <<< '{"type":"array","args":false}'
$ json <<< '{"type":"array","args":true}'
json: error: <stdin>:1:24: meta error: invalid "array" object: value of "args" must be a type or an array of types
json: error: <stdin>:1:24: {"type":"array","args":true}
json: error: <stdin>:1:24:                        ^
command failed: json <<< '{"type":"array","args":true}'
$ json <<< '{"type":"array","args":123}'
json: error: <stdin>:1:24: meta error: invalid "array" object: value of "args" must be a type or an array of types
json: error: <stdin>:1:24: {"type":"array","args":123}
json: error: <stdin>:1:24:                        ^
command failed: json <<< '{"type":"array","args":123}'
$ json <<< '{"type":"array","args":"foo"}'
json: error: <stdin>:1:24: meta error: invalid "array" object: value of "args" must be a type or an array of types
json: error: <stdin>:1:24: {"type":"array","args":"foo"}
json: error: <stdin>:1:24:                        ^
command failed: json <<< '{"type":"array","args":"foo"}'
$ json <<< '{"type":"array","args":"type"}'
{
    "type": "array",
    "args": "type"
}
$ json <<< '{"type":"array","args":"null"}'
{
    "type": "array",
    "args": "null"
}
$ json <<< '{"type":"array","args":"boolean"}'
{
    "type": "array",
    "args": "boolean"
}
$ json <<< '{"type":"array","args":"number"}'
{
    "type": "array",
    "args": "number"
}
$ json <<< '{"type":"array","args":"string"}'
{
    "type": "array",
    "args": "string"
}
$ json <<< '{"type":"array","args":"object"}'
{
    "type": "array",
    "args": "object"
}
$ json <<< '{"type":"array","args":"array"}'
{
    "type": "array",
    "args": "array"
}
$ json <<< '{"type":"array","args":"list"}'
json: error: <stdin>:1:24: meta error: invalid "array" object: value of "args" must be a type or an array of types
json: error: <stdin>:1:24: {"type":"array","args":"list"}
json: error: <stdin>:1:24:                        ^
command failed: json <<< '{"type":"array","args":"list"}'
$ json <<< '{"type":"array","args":{}}'
json: error: <stdin>:1:24: meta error: empty objects are not allowed
json: error: <stdin>:1:24: {"type":"array","args":{}}
json: error: <stdin>:1:24:                        ^
command failed: json <<< '{"type":"array","args":{}}'
$ json <<< '{"type":"array","args":{"foo":"bar"}}'
json: error: <stdin>:1:25: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:25: {"type":"array","args":{"foo":"bar"}}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"array","args":{"foo":"bar"}}'
$ json <<< '{"type":"array","args":[]}'
{
    "type": "array",
    "args": []
}
$ json <<< '{"type":"array","args":["foo","bar"]}'
json: error: <stdin>:1:25: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:25: {"type":"array","args":["foo","bar"]}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"array","args":["foo","bar"]}'
$ json <<< '{"type":"array","args":{"plain":false}}'
{
    "type": "array",
    "args": {
        "plain": false
    }
}
$ json <<< '{"type":"array","args":{"type":"object","args":[]}}'
{
    "type": "array",
    "args": {
        "type": "object",
        "args": []
    }
}
$ json <<< '{"type":"array","args":{"type":"array","args":"type"}}'
{
    "type": "array",
    "args": {
        "type": "array",
        "args": "type"
    }
}
$ json <<< '{"type":"array","args":{"type":"array","args":[]}}'
{
    "type": "array",
    "args": {
        "type": "array",
        "args": []
    }
}
$

--[ closed-array ]--------------------------------------------------------------

#
# # meta command:
# $ for v in null false true 123 '"foo"' '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '"list"' '{}' '{"foo":"bar"}' '[]' '["foo","bar"]' '{"plain":false}' '{"type":"object","args":[]}' '{"type":"array","args":"type"}' '{"type":"array","args":[]}'; do T='{"type":"array","args":['"$v"']}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test "$?" -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"array","args":[null]}'
json: error: <stdin>:1:25: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:25: {"type":"array","args":[null]}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"array","args":[null]}'
$ json <<< '{"type":"array","args":[false]}'
json: error: <stdin>:1:25: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:25: {"type":"array","args":[false]}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"array","args":[false]}'
$ json <<< '{"type":"array","args":[true]}'
json: error: <stdin>:1:25: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:25: {"type":"array","args":[true]}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"array","args":[true]}'
$ json <<< '{"type":"array","args":[123]}'
json: error: <stdin>:1:25: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:25: {"type":"array","args":[123]}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"array","args":[123]}'
$ json <<< '{"type":"array","args":["foo"]}'
json: error: <stdin>:1:25: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:25: {"type":"array","args":["foo"]}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"array","args":["foo"]}'
$ json <<< '{"type":"array","args":["type"]}'
{
    "type": "array",
    "args": [
        "type"
    ]
}
$ json <<< '{"type":"array","args":["null"]}'
{
    "type": "array",
    "args": [
        "null"
    ]
}
$ json <<< '{"type":"array","args":["boolean"]}'
{
    "type": "array",
    "args": [
        "boolean"
    ]
}
$ json <<< '{"type":"array","args":["number"]}'
{
    "type": "array",
    "args": [
        "number"
    ]
}
$ json <<< '{"type":"array","args":["string"]}'
{
    "type": "array",
    "args": [
        "string"
    ]
}
$ json <<< '{"type":"array","args":["object"]}'
{
    "type": "array",
    "args": [
        "object"
    ]
}
$ json <<< '{"type":"array","args":["array"]}'
{
    "type": "array",
    "args": [
        "array"
    ]
}
$ json <<< '{"type":"array","args":["list"]}'
json: error: <stdin>:1:25: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:25: {"type":"array","args":["list"]}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"array","args":["list"]}'
$ json <<< '{"type":"array","args":[{}]}'
json: error: <stdin>:1:25: meta error: empty objects are not allowed
json: error: <stdin>:1:25: {"type":"array","args":[{}]}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"array","args":[{}]}'
$ json <<< '{"type":"array","args":[{"foo":"bar"}]}'
json: error: <stdin>:1:26: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:26: {"type":"array","args":[{"foo":"bar"}]}
json: error: <stdin>:1:26:                          ^
command failed: json <<< '{"type":"array","args":[{"foo":"bar"}]}'
$ json <<< '{"type":"array","args":[[]]}'
json: error: <stdin>:1:25: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:25: {"type":"array","args":[[]]}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"array","args":[[]]}'
$ json <<< '{"type":"array","args":[["foo","bar"]]}'
json: error: <stdin>:1:26: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:26: {"type":"array","args":[["foo","bar"]]}
json: error: <stdin>:1:26:                          ^
command failed: json <<< '{"type":"array","args":[["foo","bar"]]}'
$ json <<< '{"type":"array","args":[{"plain":false}]}'
{
    "type": "array",
    "args": [
        {
            "plain": false
        }
    ]
}
$ json <<< '{"type":"array","args":[{"type":"object","args":[]}]}'
{
    "type": "array",
    "args": [
        {
            "type": "object",
            "args": []
        }
    ]
}
$ json <<< '{"type":"array","args":[{"type":"array","args":"type"}]}'
{
    "type": "array",
    "args": [
        {
            "type": "array",
            "args": "type"
        }
    ]
}
$ json <<< '{"type":"array","args":[{"type":"array","args":[]}]}'
{
    "type": "array",
    "args": [
        {
            "type": "array",
            "args": []
        }
    ]
}
$

--[ list ]----------------------------------------------------------------------

#
# # meta command:
# $ for v in null false true 123 '"foo"' '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '"list"' '{}' '{"foo":"bar"}' '[]' '["foo","bar"]' '{"plain":false}' '{"type":"object","args":[]}' '{"type":"array","args":"type"}' '{"type":"array","args":[]}'; do T='{"type":"list","args":['"$v"']}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test "$?" -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[null]}'
json: error: <stdin>:1:24: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:24: {"type":"list","args":[null]}
json: error: <stdin>:1:24:                        ^
command failed: json <<< '{"type":"list","args":[null]}'
$ json <<< '{"type":"list","args":[false]}'
json: error: <stdin>:1:24: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:24: {"type":"list","args":[false]}
json: error: <stdin>:1:24:                        ^
command failed: json <<< '{"type":"list","args":[false]}'
$ json <<< '{"type":"list","args":[true]}'
json: error: <stdin>:1:24: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:24: {"type":"list","args":[true]}
json: error: <stdin>:1:24:                        ^
command failed: json <<< '{"type":"list","args":[true]}'
$ json <<< '{"type":"list","args":[123]}'
json: error: <stdin>:1:24: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:24: {"type":"list","args":[123]}
json: error: <stdin>:1:24:                        ^
command failed: json <<< '{"type":"list","args":[123]}'
$ json <<< '{"type":"list","args":["foo"]}'
json: error: <stdin>:1:24: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:24: {"type":"list","args":["foo"]}
json: error: <stdin>:1:24:                        ^
command failed: json <<< '{"type":"list","args":["foo"]}'
$ json <<< '{"type":"list","args":["type"]}'
{
    "type": "list",
    "args": [
        "type"
    ],
    "attr": {
        "any": {
            "sym": "type",
            "lo": null,
            "eq": {
                "val": "type",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["null"]}'
{
    "type": "list",
    "args": [
        "null"
    ],
    "attr": {
        "any": {
            "sym": "null",
            "lo": null,
            "eq": {
                "val": "null",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["boolean"]}'
{
    "type": "list",
    "args": [
        "boolean"
    ],
    "attr": {
        "any": {
            "sym": "boolean",
            "lo": null,
            "eq": {
                "val": "boolean",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["number"]}'
{
    "type": "list",
    "args": [
        "number"
    ],
    "attr": {
        "any": {
            "sym": "number",
            "lo": null,
            "eq": {
                "val": "number",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["string"]}'
{
    "type": "list",
    "args": [
        "string"
    ],
    "attr": {
        "any": {
            "sym": "string",
            "lo": null,
            "eq": {
                "val": "string",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["object"]}'
{
    "type": "list",
    "args": [
        "object"
    ],
    "attr": {
        "any": {
            "sym": "object",
            "lo": null,
            "eq": {
                "val": "object",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["array"]}'
{
    "type": "list",
    "args": [
        "array"
    ],
    "attr": {
        "any": {
            "sym": "array",
            "lo": null,
            "eq": {
                "val": "array",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["list"]}'
json: error: <stdin>:1:24: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:24: {"type":"list","args":["list"]}
json: error: <stdin>:1:24:                        ^
command failed: json <<< '{"type":"list","args":["list"]}'
$ json <<< '{"type":"list","args":[{}]}'
json: error: <stdin>:1:24: meta error: empty objects are not allowed
json: error: <stdin>:1:24: {"type":"list","args":[{}]}
json: error: <stdin>:1:24:                        ^
command failed: json <<< '{"type":"list","args":[{}]}'
$ json <<< '{"type":"list","args":[{"foo":"bar"}]}'
json: error: <stdin>:1:25: meta error: invalid first key of object: it must be "type", "name" or "plain"
json: error: <stdin>:1:25: {"type":"list","args":[{"foo":"bar"}]}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"list","args":[{"foo":"bar"}]}'
$ json <<< '{"type":"list","args":[[]]}'
json: error: <stdin>:1:24: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:24: {"type":"list","args":[[]]}
json: error: <stdin>:1:24:                        ^
command failed: json <<< '{"type":"list","args":[[]]}'
$ json <<< '{"type":"list","args":[["foo","bar"]]}'
json: error: <stdin>:1:25: meta error: invalid array: element is neither a type nor a "name" object
json: error: <stdin>:1:25: {"type":"list","args":[["foo","bar"]]}
json: error: <stdin>:1:25:                         ^
command failed: json <<< '{"type":"list","args":[["foo","bar"]]}'
$ json <<< '{"type":"list","args":[{"plain":false}]}'
{
    "type": "list",
    "args": [
        {
            "plain": false
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": false
            },
            "lo": null,
            "eq": {
                "val": {
                    "plain": false
                },
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": []
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "val": {
                "type": "object",
                "args": []
            },
            "lo": null,
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": []
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "val": {
                    "type": "array",
                    "args": []
                },
                "lo": null,
                "hi": null
            }
        }
    }
}
$

--[ list-any-type ]-------------------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do T='{"type":"list","args":["'"$t"'"]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test "$?" -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":["type"]}'
{
    "type": "list",
    "args": [
        "type"
    ],
    "attr": {
        "any": {
            "sym": "type",
            "lo": null,
            "eq": {
                "val": "type",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["null"]}'
{
    "type": "list",
    "args": [
        "null"
    ],
    "attr": {
        "any": {
            "sym": "null",
            "lo": null,
            "eq": {
                "val": "null",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["boolean"]}'
{
    "type": "list",
    "args": [
        "boolean"
    ],
    "attr": {
        "any": {
            "sym": "boolean",
            "lo": null,
            "eq": {
                "val": "boolean",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["number"]}'
{
    "type": "list",
    "args": [
        "number"
    ],
    "attr": {
        "any": {
            "sym": "number",
            "lo": null,
            "eq": {
                "val": "number",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["string"]}'
{
    "type": "list",
    "args": [
        "string"
    ],
    "attr": {
        "any": {
            "sym": "string",
            "lo": null,
            "eq": {
                "val": "string",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["object"]}'
{
    "type": "list",
    "args": [
        "object"
    ],
    "attr": {
        "any": {
            "sym": "object",
            "lo": null,
            "eq": {
                "val": "object",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["array"]}'
{
    "type": "list",
    "args": [
        "array"
    ],
    "attr": {
        "any": {
            "sym": "array",
            "lo": null,
            "eq": {
                "val": "array",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$

--[ list-any-type2 ]------------------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do for t2 in type null boolean number string object array; do T='{"type":"list","args":["'"$t"'","'"$t2"'"]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test "$?" -ne 0 && echo "command failed: $c"; done; done
#
$ json <<< '{"type":"list","args":["type","type"]}'
json: error: <stdin>:1:31: attribute error: invalid "list" type object: duplicated 'any' entry (previous defined at 1:24)
json: error: <stdin>:1:31: {"type":"list","args":["type","type"]}
json: error: <stdin>:1:31:                               ^
command failed: json <<< '{"type":"list","args":["type","type"]}'
$ json <<< '{"type":"list","args":["type","null"]}'
{
    "type": "list",
    "args": [
        "type",
        "null"
    ],
    "attr": {
        "any": {
            "sym": "type",
            "lo": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": "null",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": "type",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["type","boolean"]}'
{
    "type": "list",
    "args": [
        "type",
        "boolean"
    ],
    "attr": {
        "any": {
            "sym": "type",
            "lo": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": "boolean",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": "type",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["type","number"]}'
{
    "type": "list",
    "args": [
        "type",
        "number"
    ],
    "attr": {
        "any": {
            "sym": "type",
            "lo": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": "number",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": "type",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["type","string"]}'
{
    "type": "list",
    "args": [
        "type",
        "string"
    ],
    "attr": {
        "any": {
            "sym": "type",
            "lo": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": "string",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": "type",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["type","object"]}'
{
    "type": "list",
    "args": [
        "type",
        "object"
    ],
    "attr": {
        "any": {
            "sym": "type",
            "lo": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": "object",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": "type",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["type","array"]}'
{
    "type": "list",
    "args": [
        "type",
        "array"
    ],
    "attr": {
        "any": {
            "sym": "type",
            "lo": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": "array",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": "type",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["null","type"]}'
{
    "type": "list",
    "args": [
        "null",
        "type"
    ],
    "attr": {
        "any": {
            "sym": "null",
            "lo": null,
            "eq": {
                "val": "null",
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": "type",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["null","null"]}'
json: error: <stdin>:1:31: attribute error: invalid "list" type object: duplicated 'any' entry (previous defined at 1:24)
json: error: <stdin>:1:31: {"type":"list","args":["null","null"]}
json: error: <stdin>:1:31:                               ^
command failed: json <<< '{"type":"list","args":["null","null"]}'
$ json <<< '{"type":"list","args":["null","boolean"]}'
{
    "type": "list",
    "args": [
        "null",
        "boolean"
    ],
    "attr": {
        "any": {
            "sym": "null",
            "lo": null,
            "eq": {
                "val": "null",
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": "boolean",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["null","number"]}'
{
    "type": "list",
    "args": [
        "null",
        "number"
    ],
    "attr": {
        "any": {
            "sym": "null",
            "lo": null,
            "eq": {
                "val": "null",
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": "number",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["null","string"]}'
{
    "type": "list",
    "args": [
        "null",
        "string"
    ],
    "attr": {
        "any": {
            "sym": "null",
            "lo": null,
            "eq": {
                "val": "null",
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": "string",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["null","object"]}'
{
    "type": "list",
    "args": [
        "null",
        "object"
    ],
    "attr": {
        "any": {
            "sym": "null",
            "lo": null,
            "eq": {
                "val": "null",
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": "object",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["null","array"]}'
{
    "type": "list",
    "args": [
        "null",
        "array"
    ],
    "attr": {
        "any": {
            "sym": "null",
            "lo": null,
            "eq": {
                "val": "null",
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": "array",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["boolean","type"]}'
{
    "type": "list",
    "args": [
        "boolean",
        "type"
    ],
    "attr": {
        "any": {
            "sym": "boolean",
            "lo": null,
            "eq": {
                "val": "boolean",
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": "type",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["boolean","null"]}'
{
    "type": "list",
    "args": [
        "boolean",
        "null"
    ],
    "attr": {
        "any": {
            "sym": "boolean",
            "lo": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": "null",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": "boolean",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["boolean","boolean"]}'
json: error: <stdin>:1:34: attribute error: invalid "list" type object: duplicated 'any' entry (previous defined at 1:24)
json: error: <stdin>:1:34: "type":"list","args":["boolean","boolean"]}
json: error: <stdin>:1:34:                                 ^
command failed: json <<< '{"type":"list","args":["boolean","boolean"]}'
$ json <<< '{"type":"list","args":["boolean","number"]}'
{
    "type": "list",
    "args": [
        "boolean",
        "number"
    ],
    "attr": {
        "any": {
            "sym": "boolean",
            "lo": null,
            "eq": {
                "val": "boolean",
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": "number",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["boolean","string"]}'
{
    "type": "list",
    "args": [
        "boolean",
        "string"
    ],
    "attr": {
        "any": {
            "sym": "boolean",
            "lo": null,
            "eq": {
                "val": "boolean",
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": "string",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["boolean","object"]}'
{
    "type": "list",
    "args": [
        "boolean",
        "object"
    ],
    "attr": {
        "any": {
            "sym": "boolean",
            "lo": null,
            "eq": {
                "val": "boolean",
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": "object",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["boolean","array"]}'
{
    "type": "list",
    "args": [
        "boolean",
        "array"
    ],
    "attr": {
        "any": {
            "sym": "boolean",
            "lo": null,
            "eq": {
                "val": "boolean",
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": "array",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["number","type"]}'
{
    "type": "list",
    "args": [
        "number",
        "type"
    ],
    "attr": {
        "any": {
            "sym": "number",
            "lo": null,
            "eq": {
                "val": "number",
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": "type",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["number","null"]}'
{
    "type": "list",
    "args": [
        "number",
        "null"
    ],
    "attr": {
        "any": {
            "sym": "number",
            "lo": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": "null",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": "number",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["number","boolean"]}'
{
    "type": "list",
    "args": [
        "number",
        "boolean"
    ],
    "attr": {
        "any": {
            "sym": "number",
            "lo": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": "boolean",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": "number",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["number","number"]}'
json: error: <stdin>:1:33: attribute error: invalid "list" type object: duplicated 'any' entry (previous defined at 1:24)
json: error: <stdin>:1:33: {"type":"list","args":["number","number"]}
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '{"type":"list","args":["number","number"]}'
$ json <<< '{"type":"list","args":["number","string"]}'
{
    "type": "list",
    "args": [
        "number",
        "string"
    ],
    "attr": {
        "any": {
            "sym": "number",
            "lo": null,
            "eq": {
                "val": "number",
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": "string",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["number","object"]}'
{
    "type": "list",
    "args": [
        "number",
        "object"
    ],
    "attr": {
        "any": {
            "sym": "number",
            "lo": null,
            "eq": {
                "val": "number",
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": "object",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["number","array"]}'
{
    "type": "list",
    "args": [
        "number",
        "array"
    ],
    "attr": {
        "any": {
            "sym": "number",
            "lo": null,
            "eq": {
                "val": "number",
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": "array",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["string","type"]}'
{
    "type": "list",
    "args": [
        "string",
        "type"
    ],
    "attr": {
        "any": {
            "sym": "string",
            "lo": null,
            "eq": {
                "val": "string",
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": "type",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["string","null"]}'
{
    "type": "list",
    "args": [
        "string",
        "null"
    ],
    "attr": {
        "any": {
            "sym": "string",
            "lo": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": "null",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": "string",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["string","boolean"]}'
{
    "type": "list",
    "args": [
        "string",
        "boolean"
    ],
    "attr": {
        "any": {
            "sym": "string",
            "lo": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": "boolean",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": "string",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["string","number"]}'
{
    "type": "list",
    "args": [
        "string",
        "number"
    ],
    "attr": {
        "any": {
            "sym": "string",
            "lo": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": "number",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": "string",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["string","string"]}'
json: error: <stdin>:1:33: attribute error: invalid "list" type object: duplicated 'any' entry (previous defined at 1:24)
json: error: <stdin>:1:33: {"type":"list","args":["string","string"]}
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '{"type":"list","args":["string","string"]}'
$ json <<< '{"type":"list","args":["string","object"]}'
{
    "type": "list",
    "args": [
        "string",
        "object"
    ],
    "attr": {
        "any": {
            "sym": "string",
            "lo": null,
            "eq": {
                "val": "string",
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": "object",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["string","array"]}'
{
    "type": "list",
    "args": [
        "string",
        "array"
    ],
    "attr": {
        "any": {
            "sym": "string",
            "lo": null,
            "eq": {
                "val": "string",
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": "array",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["object","type"]}'
{
    "type": "list",
    "args": [
        "object",
        "type"
    ],
    "attr": {
        "any": {
            "sym": "object",
            "lo": null,
            "eq": {
                "val": "object",
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": "type",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["object","null"]}'
{
    "type": "list",
    "args": [
        "object",
        "null"
    ],
    "attr": {
        "any": {
            "sym": "object",
            "lo": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": "null",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": "object",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["object","boolean"]}'
{
    "type": "list",
    "args": [
        "object",
        "boolean"
    ],
    "attr": {
        "any": {
            "sym": "object",
            "lo": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": "boolean",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": "object",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["object","number"]}'
{
    "type": "list",
    "args": [
        "object",
        "number"
    ],
    "attr": {
        "any": {
            "sym": "object",
            "lo": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": "number",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": "object",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["object","string"]}'
{
    "type": "list",
    "args": [
        "object",
        "string"
    ],
    "attr": {
        "any": {
            "sym": "object",
            "lo": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": "string",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": "object",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["object","object"]}'
json: error: <stdin>:1:33: attribute error: invalid "list" type object: duplicated 'any' entry (previous defined at 1:24)
json: error: <stdin>:1:33: {"type":"list","args":["object","object"]}
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '{"type":"list","args":["object","object"]}'
$ json <<< '{"type":"list","args":["object","array"]}'
{
    "type": "list",
    "args": [
        "object",
        "array"
    ],
    "attr": {
        "any": {
            "sym": "object",
            "lo": null,
            "eq": {
                "val": "object",
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": "array",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["array","type"]}'
{
    "type": "list",
    "args": [
        "array",
        "type"
    ],
    "attr": {
        "any": {
            "sym": "array",
            "lo": null,
            "eq": {
                "val": "array",
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": "type",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["array","null"]}'
{
    "type": "list",
    "args": [
        "array",
        "null"
    ],
    "attr": {
        "any": {
            "sym": "array",
            "lo": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": "null",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": "array",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["array","boolean"]}'
{
    "type": "list",
    "args": [
        "array",
        "boolean"
    ],
    "attr": {
        "any": {
            "sym": "array",
            "lo": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": "boolean",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": "array",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["array","number"]}'
{
    "type": "list",
    "args": [
        "array",
        "number"
    ],
    "attr": {
        "any": {
            "sym": "array",
            "lo": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": "number",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": "array",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["array","string"]}'
{
    "type": "list",
    "args": [
        "array",
        "string"
    ],
    "attr": {
        "any": {
            "sym": "array",
            "lo": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": "string",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": "array",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["array","object"]}'
{
    "type": "list",
    "args": [
        "array",
        "object"
    ],
    "attr": {
        "any": {
            "sym": "array",
            "lo": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": "object",
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": "array",
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":["array","array"]}'
json: error: <stdin>:1:32: attribute error: invalid "list" type object: duplicated 'any' entry (previous defined at 1:24)
json: error: <stdin>:1:32: {"type":"list","args":["array","array"]}
json: error: <stdin>:1:32:                                ^
command failed: json <<< '{"type":"list","args":["array","array"]}'
$

--[ list-plain ]----------------------------------------------------------------

#
# # meta command:
# $ for v in null false true 123; do T='{"type":"list","args":[{"plain":'"$v"'}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test "$?" -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"plain":null}]}'
{
    "type": "list",
    "args": [
        {
            "plain": null
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": null
            },
            "lo": null,
            "eq": {
                "val": {
                    "plain": null
                },
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":false}]}'
{
    "type": "list",
    "args": [
        {
            "plain": false
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": false
            },
            "lo": null,
            "eq": {
                "val": {
                    "plain": false
                },
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":true}]}'
{
    "type": "list",
    "args": [
        {
            "plain": true
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": true
            },
            "lo": null,
            "eq": {
                "val": {
                    "plain": true
                },
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":123}]}'
{
    "type": "list",
    "args": [
        {
            "plain": 123
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": 123
            },
            "lo": null,
            "eq": {
                "val": {
                    "plain": 123
                },
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$

--[ list-plain2 ]---------------------------------------------------------------

#
# # meta command:
# $ for v in null false true 123; do for v2 in null false true 123; do T='{"type":"list","args":[{"plain":'"$v"'},{"plain":'"$v2"'}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test "$?" -ne 0 && echo "command failed: $c"; done; done
#
$ json <<< '{"type":"list","args":[{"plain":null},{"plain":null}]}'
json: error: <stdin>:1:39: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:39: ":"list","args":[{"plain":null},{"plain":null}]}
json: error: <stdin>:1:39:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":null},{"plain":null}]}'
$ json <<< '{"type":"list","args":[{"plain":null},{"plain":false}]}'
{
    "type": "list",
    "args": [
        {
            "plain": null
        },
        {
            "plain": false
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": null
            },
            "lo": null,
            "eq": {
                "val": {
                    "plain": null
                },
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": {
                    "plain": false
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": false
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":null},{"plain":true}]}'
{
    "type": "list",
    "args": [
        {
            "plain": null
        },
        {
            "plain": true
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": null
            },
            "lo": null,
            "eq": {
                "val": {
                    "plain": null
                },
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": {
                    "plain": true
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": true
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":null},{"plain":123}]}'
{
    "type": "list",
    "args": [
        {
            "plain": null
        },
        {
            "plain": 123
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": null
            },
            "lo": null,
            "eq": {
                "val": {
                    "plain": null
                },
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": {
                    "plain": 123
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": 123
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":false},{"plain":null}]}'
{
    "type": "list",
    "args": [
        {
            "plain": false
        },
        {
            "plain": null
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": false
            },
            "lo": {
                "sym": {
                    "plain": null
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": null
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": {
                    "plain": false
                },
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":false},{"plain":false}]}'
json: error: <stdin>:1:40: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:40: :"list","args":[{"plain":false},{"plain":false}]}
json: error: <stdin>:1:40:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":false},{"plain":false}]}'
$ json <<< '{"type":"list","args":[{"plain":false},{"plain":true}]}'
{
    "type": "list",
    "args": [
        {
            "plain": false
        },
        {
            "plain": true
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": false
            },
            "lo": null,
            "eq": {
                "val": {
                    "plain": false
                },
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": {
                    "plain": true
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": true
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":false},{"plain":123}]}'
{
    "type": "list",
    "args": [
        {
            "plain": false
        },
        {
            "plain": 123
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": false
            },
            "lo": null,
            "eq": {
                "val": {
                    "plain": false
                },
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": {
                    "plain": 123
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": 123
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":true},{"plain":null}]}'
{
    "type": "list",
    "args": [
        {
            "plain": true
        },
        {
            "plain": null
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": true
            },
            "lo": {
                "sym": {
                    "plain": null
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": null
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": {
                    "plain": true
                },
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":true},{"plain":false}]}'
{
    "type": "list",
    "args": [
        {
            "plain": true
        },
        {
            "plain": false
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": true
            },
            "lo": {
                "sym": {
                    "plain": false
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": false
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": {
                    "plain": true
                },
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":true},{"plain":true}]}'
json: error: <stdin>:1:39: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:39: ":"list","args":[{"plain":true},{"plain":true}]}
json: error: <stdin>:1:39:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":true},{"plain":true}]}'
$ json <<< '{"type":"list","args":[{"plain":true},{"plain":123}]}'
{
    "type": "list",
    "args": [
        {
            "plain": true
        },
        {
            "plain": 123
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": true
            },
            "lo": null,
            "eq": {
                "val": {
                    "plain": true
                },
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": {
                    "plain": 123
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": 123
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":123},{"plain":null}]}'
{
    "type": "list",
    "args": [
        {
            "plain": 123
        },
        {
            "plain": null
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": 123
            },
            "lo": {
                "sym": {
                    "plain": null
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": null
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": {
                    "plain": 123
                },
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":123},{"plain":false}]}'
{
    "type": "list",
    "args": [
        {
            "plain": 123
        },
        {
            "plain": false
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": 123
            },
            "lo": {
                "sym": {
                    "plain": false
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": false
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": {
                    "plain": 123
                },
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":123},{"plain":true}]}'
{
    "type": "list",
    "args": [
        {
            "plain": 123
        },
        {
            "plain": true
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": 123
            },
            "lo": {
                "sym": {
                    "plain": true
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": true
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": {
                    "plain": 123
                },
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":123},{"plain":123}]}'
json: error: <stdin>:1:38: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:38: e":"list","args":[{"plain":123},{"plain":123}]}
json: error: <stdin>:1:38:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":123},{"plain":123}]}'
$

--[ list-plain3 ]---------------------------------------------------------------

#
# # meta command:
# $ for v in null false true 123; do for v2 in null false true 123; do for v3 in null false true 123; do T='{"type":"list","args":[{"plain":'"$v"'},{"plain":'"$v2"'},{"plain":'"$v3"'}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test "$?" -ne 0 && echo "command failed: $c"; done; done; done
#
$ json <<< '{"type":"list","args":[{"plain":null},{"plain":null},{"plain":null}]}'
json: error: <stdin>:1:39: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:39: ":"list","args":[{"plain":null},{"plain":null},{"plain":null}]}
json: error: <stdin>:1:39:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":null},{"plain":null},{"plain":null}]}'
$ json <<< '{"type":"list","args":[{"plain":null},{"plain":null},{"plain":false}]}'
json: error: <stdin>:1:39: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:39: ":"list","args":[{"plain":null},{"plain":null},{"plain":false}]}
json: error: <stdin>:1:39:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":null},{"plain":null},{"plain":false}]}'
$ json <<< '{"type":"list","args":[{"plain":null},{"plain":null},{"plain":true}]}'
json: error: <stdin>:1:39: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:39: ":"list","args":[{"plain":null},{"plain":null},{"plain":true}]}
json: error: <stdin>:1:39:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":null},{"plain":null},{"plain":true}]}'
$ json <<< '{"type":"list","args":[{"plain":null},{"plain":null},{"plain":123}]}'
json: error: <stdin>:1:39: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:39: ":"list","args":[{"plain":null},{"plain":null},{"plain":123}]}
json: error: <stdin>:1:39:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":null},{"plain":null},{"plain":123}]}'
$ json <<< '{"type":"list","args":[{"plain":null},{"plain":false},{"plain":null}]}'
json: error: <stdin>:1:55: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:55: [{"plain":null},{"plain":false},{"plain":null}]}
json: error: <stdin>:1:55:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":null},{"plain":false},{"plain":null}]}'
$ json <<< '{"type":"list","args":[{"plain":null},{"plain":false},{"plain":false}]}'
json: error: <stdin>:1:55: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:39)
json: error: <stdin>:1:55: [{"plain":null},{"plain":false},{"plain":false}]}
json: error: <stdin>:1:55:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":null},{"plain":false},{"plain":false}]}'
$ json <<< '{"type":"list","args":[{"plain":null},{"plain":false},{"plain":true}]}'
{
    "type": "list",
    "args": [
        {
            "plain": null
        },
        {
            "plain": false
        },
        {
            "plain": true
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": null
            },
            "lo": null,
            "eq": {
                "val": {
                    "plain": null
                },
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": {
                    "plain": false
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": false
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "plain": true
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "plain": true
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":null},{"plain":false},{"plain":123}]}'
{
    "type": "list",
    "args": [
        {
            "plain": null
        },
        {
            "plain": false
        },
        {
            "plain": 123
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": null
            },
            "lo": null,
            "eq": {
                "val": {
                    "plain": null
                },
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": {
                    "plain": false
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": false
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "plain": 123
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "plain": 123
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":null},{"plain":true},{"plain":null}]}'
json: error: <stdin>:1:54: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:54: :[{"plain":null},{"plain":true},{"plain":null}]}
json: error: <stdin>:1:54:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":null},{"plain":true},{"plain":null}]}'
$ json <<< '{"type":"list","args":[{"plain":null},{"plain":true},{"plain":false}]}'
{
    "type": "list",
    "args": [
        {
            "plain": null
        },
        {
            "plain": true
        },
        {
            "plain": false
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": null
            },
            "lo": null,
            "eq": {
                "val": {
                    "plain": null
                },
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": {
                    "plain": true
                },
                "lo": {
                    "sym": {
                        "plain": false
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "plain": false
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "plain": true
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":null},{"plain":true},{"plain":true}]}'
json: error: <stdin>:1:54: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:39)
json: error: <stdin>:1:54: :[{"plain":null},{"plain":true},{"plain":true}]}
json: error: <stdin>:1:54:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":null},{"plain":true},{"plain":true}]}'
$ json <<< '{"type":"list","args":[{"plain":null},{"plain":true},{"plain":123}]}'
{
    "type": "list",
    "args": [
        {
            "plain": null
        },
        {
            "plain": true
        },
        {
            "plain": 123
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": null
            },
            "lo": null,
            "eq": {
                "val": {
                    "plain": null
                },
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": {
                    "plain": true
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": true
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "plain": 123
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "plain": 123
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":null},{"plain":123},{"plain":null}]}'
json: error: <stdin>:1:53: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:53: ":[{"plain":null},{"plain":123},{"plain":null}]}
json: error: <stdin>:1:53:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":null},{"plain":123},{"plain":null}]}'
$ json <<< '{"type":"list","args":[{"plain":null},{"plain":123},{"plain":false}]}'
{
    "type": "list",
    "args": [
        {
            "plain": null
        },
        {
            "plain": 123
        },
        {
            "plain": false
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": null
            },
            "lo": null,
            "eq": {
                "val": {
                    "plain": null
                },
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": {
                    "plain": 123
                },
                "lo": {
                    "sym": {
                        "plain": false
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "plain": false
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "plain": 123
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":null},{"plain":123},{"plain":true}]}'
{
    "type": "list",
    "args": [
        {
            "plain": null
        },
        {
            "plain": 123
        },
        {
            "plain": true
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": null
            },
            "lo": null,
            "eq": {
                "val": {
                    "plain": null
                },
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": {
                    "plain": 123
                },
                "lo": {
                    "sym": {
                        "plain": true
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "plain": true
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "plain": 123
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":null},{"plain":123},{"plain":123}]}'
json: error: <stdin>:1:53: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:39)
json: error: <stdin>:1:53: ":[{"plain":null},{"plain":123},{"plain":123}]}
json: error: <stdin>:1:53:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":null},{"plain":123},{"plain":123}]}'
$ json <<< '{"type":"list","args":[{"plain":false},{"plain":null},{"plain":null}]}'
json: error: <stdin>:1:55: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:40)
json: error: <stdin>:1:55: [{"plain":false},{"plain":null},{"plain":null}]}
json: error: <stdin>:1:55:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":false},{"plain":null},{"plain":null}]}'
$ json <<< '{"type":"list","args":[{"plain":false},{"plain":null},{"plain":false}]}'
json: error: <stdin>:1:55: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:55: [{"plain":false},{"plain":null},{"plain":false}]}
json: error: <stdin>:1:55:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":false},{"plain":null},{"plain":false}]}'
$ json <<< '{"type":"list","args":[{"plain":false},{"plain":null},{"plain":true}]}'
{
    "type": "list",
    "args": [
        {
            "plain": false
        },
        {
            "plain": null
        },
        {
            "plain": true
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": false
            },
            "lo": {
                "sym": {
                    "plain": null
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": null
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": {
                    "plain": false
                },
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": {
                    "plain": true
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": true
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":false},{"plain":null},{"plain":123}]}'
{
    "type": "list",
    "args": [
        {
            "plain": false
        },
        {
            "plain": null
        },
        {
            "plain": 123
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": false
            },
            "lo": {
                "sym": {
                    "plain": null
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": null
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": {
                    "plain": false
                },
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": {
                    "plain": 123
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": 123
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":false},{"plain":false},{"plain":null}]}'
json: error: <stdin>:1:40: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:40: :"list","args":[{"plain":false},{"plain":false},{"plain":null}]}
json: error: <stdin>:1:40:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":false},{"plain":false},{"plain":null}]}'
$ json <<< '{"type":"list","args":[{"plain":false},{"plain":false},{"plain":false}]}'
json: error: <stdin>:1:40: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:40: :"list","args":[{"plain":false},{"plain":false},{"plain":false}]}
json: error: <stdin>:1:40:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":false},{"plain":false},{"plain":false}]}'
$ json <<< '{"type":"list","args":[{"plain":false},{"plain":false},{"plain":true}]}'
json: error: <stdin>:1:40: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:40: :"list","args":[{"plain":false},{"plain":false},{"plain":true}]}
json: error: <stdin>:1:40:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":false},{"plain":false},{"plain":true}]}'
$ json <<< '{"type":"list","args":[{"plain":false},{"plain":false},{"plain":123}]}'
json: error: <stdin>:1:40: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:40: :"list","args":[{"plain":false},{"plain":false},{"plain":123}]}
json: error: <stdin>:1:40:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":false},{"plain":false},{"plain":123}]}'
$ json <<< '{"type":"list","args":[{"plain":false},{"plain":true},{"plain":null}]}'
{
    "type": "list",
    "args": [
        {
            "plain": false
        },
        {
            "plain": true
        },
        {
            "plain": null
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": false
            },
            "lo": {
                "sym": {
                    "plain": null
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": null
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": {
                    "plain": false
                },
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": {
                    "plain": true
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": true
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":false},{"plain":true},{"plain":false}]}'
json: error: <stdin>:1:55: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:55: [{"plain":false},{"plain":true},{"plain":false}]}
json: error: <stdin>:1:55:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":false},{"plain":true},{"plain":false}]}'
$ json <<< '{"type":"list","args":[{"plain":false},{"plain":true},{"plain":true}]}'
json: error: <stdin>:1:55: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:40)
json: error: <stdin>:1:55: [{"plain":false},{"plain":true},{"plain":true}]}
json: error: <stdin>:1:55:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":false},{"plain":true},{"plain":true}]}'
$ json <<< '{"type":"list","args":[{"plain":false},{"plain":true},{"plain":123}]}'
{
    "type": "list",
    "args": [
        {
            "plain": false
        },
        {
            "plain": true
        },
        {
            "plain": 123
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": false
            },
            "lo": null,
            "eq": {
                "val": {
                    "plain": false
                },
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": {
                    "plain": true
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": true
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "plain": 123
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "plain": 123
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":false},{"plain":123},{"plain":null}]}'
{
    "type": "list",
    "args": [
        {
            "plain": false
        },
        {
            "plain": 123
        },
        {
            "plain": null
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": false
            },
            "lo": {
                "sym": {
                    "plain": null
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": null
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": {
                    "plain": false
                },
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": {
                    "plain": 123
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": 123
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":false},{"plain":123},{"plain":false}]}'
json: error: <stdin>:1:54: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:54: :[{"plain":false},{"plain":123},{"plain":false}]}
json: error: <stdin>:1:54:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":false},{"plain":123},{"plain":false}]}'
$ json <<< '{"type":"list","args":[{"plain":false},{"plain":123},{"plain":true}]}'
{
    "type": "list",
    "args": [
        {
            "plain": false
        },
        {
            "plain": 123
        },
        {
            "plain": true
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": false
            },
            "lo": null,
            "eq": {
                "val": {
                    "plain": false
                },
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": {
                    "plain": 123
                },
                "lo": {
                    "sym": {
                        "plain": true
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "plain": true
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "plain": 123
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":false},{"plain":123},{"plain":123}]}'
json: error: <stdin>:1:54: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:40)
json: error: <stdin>:1:54: :[{"plain":false},{"plain":123},{"plain":123}]}
json: error: <stdin>:1:54:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":false},{"plain":123},{"plain":123}]}'
$ json <<< '{"type":"list","args":[{"plain":true},{"plain":null},{"plain":null}]}'
json: error: <stdin>:1:54: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:39)
json: error: <stdin>:1:54: :[{"plain":true},{"plain":null},{"plain":null}]}
json: error: <stdin>:1:54:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":true},{"plain":null},{"plain":null}]}'
$ json <<< '{"type":"list","args":[{"plain":true},{"plain":null},{"plain":false}]}'
{
    "type": "list",
    "args": [
        {
            "plain": true
        },
        {
            "plain": null
        },
        {
            "plain": false
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": true
            },
            "lo": {
                "sym": {
                    "plain": null
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": null
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "plain": false
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "plain": false
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "eq": {
                "val": {
                    "plain": true
                },
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":true},{"plain":null},{"plain":true}]}'
json: error: <stdin>:1:54: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:54: :[{"plain":true},{"plain":null},{"plain":true}]}
json: error: <stdin>:1:54:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":true},{"plain":null},{"plain":true}]}'
$ json <<< '{"type":"list","args":[{"plain":true},{"plain":null},{"plain":123}]}'
{
    "type": "list",
    "args": [
        {
            "plain": true
        },
        {
            "plain": null
        },
        {
            "plain": 123
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": true
            },
            "lo": {
                "sym": {
                    "plain": null
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": null
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": {
                    "plain": true
                },
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": {
                    "plain": 123
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": 123
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":true},{"plain":false},{"plain":null}]}'
{
    "type": "list",
    "args": [
        {
            "plain": true
        },
        {
            "plain": false
        },
        {
            "plain": null
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": true
            },
            "lo": {
                "sym": {
                    "plain": false
                },
                "lo": {
                    "sym": {
                        "plain": null
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "plain": null
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "plain": false
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": {
                    "plain": true
                },
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":true},{"plain":false},{"plain":false}]}'
json: error: <stdin>:1:55: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:39)
json: error: <stdin>:1:55: [{"plain":true},{"plain":false},{"plain":false}]}
json: error: <stdin>:1:55:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":true},{"plain":false},{"plain":false}]}'
$ json <<< '{"type":"list","args":[{"plain":true},{"plain":false},{"plain":true}]}'
json: error: <stdin>:1:55: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:55: [{"plain":true},{"plain":false},{"plain":true}]}
json: error: <stdin>:1:55:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":true},{"plain":false},{"plain":true}]}'
$ json <<< '{"type":"list","args":[{"plain":true},{"plain":false},{"plain":123}]}'
{
    "type": "list",
    "args": [
        {
            "plain": true
        },
        {
            "plain": false
        },
        {
            "plain": 123
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": true
            },
            "lo": {
                "sym": {
                    "plain": false
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": false
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": {
                    "plain": true
                },
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": {
                    "plain": 123
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": 123
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":true},{"plain":true},{"plain":null}]}'
json: error: <stdin>:1:39: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:39: ":"list","args":[{"plain":true},{"plain":true},{"plain":null}]}
json: error: <stdin>:1:39:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":true},{"plain":true},{"plain":null}]}'
$ json <<< '{"type":"list","args":[{"plain":true},{"plain":true},{"plain":false}]}'
json: error: <stdin>:1:39: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:39: ":"list","args":[{"plain":true},{"plain":true},{"plain":false}]}
json: error: <stdin>:1:39:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":true},{"plain":true},{"plain":false}]}'
$ json <<< '{"type":"list","args":[{"plain":true},{"plain":true},{"plain":true}]}'
json: error: <stdin>:1:39: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:39: ":"list","args":[{"plain":true},{"plain":true},{"plain":true}]}
json: error: <stdin>:1:39:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":true},{"plain":true},{"plain":true}]}'
$ json <<< '{"type":"list","args":[{"plain":true},{"plain":true},{"plain":123}]}'
json: error: <stdin>:1:39: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:39: ":"list","args":[{"plain":true},{"plain":true},{"plain":123}]}
json: error: <stdin>:1:39:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":true},{"plain":true},{"plain":123}]}'
$ json <<< '{"type":"list","args":[{"plain":true},{"plain":123},{"plain":null}]}'
{
    "type": "list",
    "args": [
        {
            "plain": true
        },
        {
            "plain": 123
        },
        {
            "plain": null
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": true
            },
            "lo": {
                "sym": {
                    "plain": null
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": null
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": {
                    "plain": true
                },
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": {
                    "plain": 123
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": 123
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":true},{"plain":123},{"plain":false}]}'
{
    "type": "list",
    "args": [
        {
            "plain": true
        },
        {
            "plain": 123
        },
        {
            "plain": false
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": true
            },
            "lo": {
                "sym": {
                    "plain": false
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": false
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": {
                    "plain": true
                },
                "lo": null,
                "hi": null
            },
            "hi": {
                "sym": {
                    "plain": 123
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": 123
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":true},{"plain":123},{"plain":true}]}'
json: error: <stdin>:1:53: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:53: ":[{"plain":true},{"plain":123},{"plain":true}]}
json: error: <stdin>:1:53:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":true},{"plain":123},{"plain":true}]}'
$ json <<< '{"type":"list","args":[{"plain":true},{"plain":123},{"plain":123}]}'
json: error: <stdin>:1:53: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:39)
json: error: <stdin>:1:53: ":[{"plain":true},{"plain":123},{"plain":123}]}
json: error: <stdin>:1:53:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":true},{"plain":123},{"plain":123}]}'
$ json <<< '{"type":"list","args":[{"plain":123},{"plain":null},{"plain":null}]}'
json: error: <stdin>:1:53: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:38)
json: error: <stdin>:1:53: ":[{"plain":123},{"plain":null},{"plain":null}]}
json: error: <stdin>:1:53:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":123},{"plain":null},{"plain":null}]}'
$ json <<< '{"type":"list","args":[{"plain":123},{"plain":null},{"plain":false}]}'
{
    "type": "list",
    "args": [
        {
            "plain": 123
        },
        {
            "plain": null
        },
        {
            "plain": false
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": 123
            },
            "lo": {
                "sym": {
                    "plain": null
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": null
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "plain": false
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "plain": false
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "eq": {
                "val": {
                    "plain": 123
                },
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":123},{"plain":null},{"plain":true}]}'
{
    "type": "list",
    "args": [
        {
            "plain": 123
        },
        {
            "plain": null
        },
        {
            "plain": true
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": 123
            },
            "lo": {
                "sym": {
                    "plain": null
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": null
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "plain": true
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "plain": true
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "eq": {
                "val": {
                    "plain": 123
                },
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":123},{"plain":null},{"plain":123}]}'
json: error: <stdin>:1:53: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:53: ":[{"plain":123},{"plain":null},{"plain":123}]}
json: error: <stdin>:1:53:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":123},{"plain":null},{"plain":123}]}'
$ json <<< '{"type":"list","args":[{"plain":123},{"plain":false},{"plain":null}]}'
{
    "type": "list",
    "args": [
        {
            "plain": 123
        },
        {
            "plain": false
        },
        {
            "plain": null
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": 123
            },
            "lo": {
                "sym": {
                    "plain": false
                },
                "lo": {
                    "sym": {
                        "plain": null
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "plain": null
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "plain": false
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": {
                    "plain": 123
                },
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":123},{"plain":false},{"plain":false}]}'
json: error: <stdin>:1:54: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:38)
json: error: <stdin>:1:54: :[{"plain":123},{"plain":false},{"plain":false}]}
json: error: <stdin>:1:54:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":123},{"plain":false},{"plain":false}]}'
$ json <<< '{"type":"list","args":[{"plain":123},{"plain":false},{"plain":true}]}'
{
    "type": "list",
    "args": [
        {
            "plain": 123
        },
        {
            "plain": false
        },
        {
            "plain": true
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": 123
            },
            "lo": {
                "sym": {
                    "plain": false
                },
                "lo": null,
                "eq": {
                    "val": {
                        "plain": false
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "plain": true
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "plain": true
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "eq": {
                "val": {
                    "plain": 123
                },
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":123},{"plain":false},{"plain":123}]}'
json: error: <stdin>:1:54: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:54: :[{"plain":123},{"plain":false},{"plain":123}]}
json: error: <stdin>:1:54:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":123},{"plain":false},{"plain":123}]}'
$ json <<< '{"type":"list","args":[{"plain":123},{"plain":true},{"plain":null}]}'
{
    "type": "list",
    "args": [
        {
            "plain": 123
        },
        {
            "plain": true
        },
        {
            "plain": null
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": 123
            },
            "lo": {
                "sym": {
                    "plain": true
                },
                "lo": {
                    "sym": {
                        "plain": null
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "plain": null
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "plain": true
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": {
                    "plain": 123
                },
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":123},{"plain":true},{"plain":false}]}'
{
    "type": "list",
    "args": [
        {
            "plain": 123
        },
        {
            "plain": true
        },
        {
            "plain": false
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": 123
            },
            "lo": {
                "sym": {
                    "plain": true
                },
                "lo": {
                    "sym": {
                        "plain": false
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "plain": false
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "plain": true
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "eq": {
                "val": {
                    "plain": 123
                },
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "object": null,
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"plain":123},{"plain":true},{"plain":true}]}'
json: error: <stdin>:1:53: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:38)
json: error: <stdin>:1:53: ":[{"plain":123},{"plain":true},{"plain":true}]}
json: error: <stdin>:1:53:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":123},{"plain":true},{"plain":true}]}'
$ json <<< '{"type":"list","args":[{"plain":123},{"plain":true},{"plain":123}]}'
json: error: <stdin>:1:53: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:53: ":[{"plain":123},{"plain":true},{"plain":123}]}
json: error: <stdin>:1:53:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":123},{"plain":true},{"plain":123}]}'
$ json <<< '{"type":"list","args":[{"plain":123},{"plain":123},{"plain":null}]}'
json: error: <stdin>:1:38: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:38: e":"list","args":[{"plain":123},{"plain":123},{"plain":null}]}
json: error: <stdin>:1:38:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":123},{"plain":123},{"plain":null}]}'
$ json <<< '{"type":"list","args":[{"plain":123},{"plain":123},{"plain":false}]}'
json: error: <stdin>:1:38: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:38: e":"list","args":[{"plain":123},{"plain":123},{"plain":false}]}
json: error: <stdin>:1:38:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":123},{"plain":123},{"plain":false}]}'
$ json <<< '{"type":"list","args":[{"plain":123},{"plain":123},{"plain":true}]}'
json: error: <stdin>:1:38: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:38: e":"list","args":[{"plain":123},{"plain":123},{"plain":true}]}
json: error: <stdin>:1:38:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":123},{"plain":123},{"plain":true}]}'
$ json <<< '{"type":"list","args":[{"plain":123},{"plain":123},{"plain":123}]}'
json: error: <stdin>:1:38: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:38: e":"list","args":[{"plain":123},{"plain":123},{"plain":123}]}
json: error: <stdin>:1:38:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":123},{"plain":123},{"plain":123}]}'
$

--[ list-empty-object ]---------------------------------------------------------

$ json <<< '{"type":"list","args":[{"type":"object","args":[]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": []
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "val": {
                "type": "object",
                "args": []
            },
            "lo": null,
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}'
json: error: <stdin>:1:52: attribute error: invalid "list" type object: duplicated 'object' entry (previous defined at 1:24)
json: error: <stdin>:1:52: s":[{"type":"object","args":[]},{"type":"object","args":[]}]}
json: error: <stdin>:1:52:                                 ^
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[]},{"type":"object","args":[]},{"type":"object","args":[]}]}'
json: error: <stdin>:1:52: attribute error: invalid "list" type object: duplicated 'object' entry (previous defined at 1:24)
json: error: <stdin>:1:52: s":[{"type":"object","args":[]},{"type":"object","args":[]},{"typ
json: error: <stdin>:1:52:                                 ^
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[]},{"type":"object","args":[]},{"type":"object","args":[]}]}'
$

--[ list-object ]---------------------------------------------------------------

#
# # meta command:
# $ for t in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":'"$t"'}]}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test "$?" -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"null"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "null"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "null"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "null"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "boolean"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "boolean"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "boolean"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"number"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "number"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "number"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"string"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "string"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "string"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "string"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"object"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "object"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "object"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "object"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"array"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "array"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "array"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "array"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": []
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "object",
                        "args": []
                    }
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "object",
                                    "args": []
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": "type"
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "array",
                        "args": "type"
                    }
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "array",
                                    "args": "type"
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$

#
# # meta meta command:
# $ o=0; a=0; A=('"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'); L=''; for t in "${A[@]}"; do L+="${L:+ }'$t'"; done; for t in "${A[@]}"; do case "$t" in \"*) n="any-${t:1:$((${#t} - 2))}";; \{\"type\":\"object\"*) n="$((++ o))"; test "$n" -eq 1 && n=""; n="object$n";; \{\"type\":\"array\"*)  n="$((++ a))"; test "$n" -eq 1 && n=""; n="array$n";; *) error "unexpected t='$t'";; esac; n="--[ list-object-$n ]"; printf -v n2 "%$((80 - ${#n}))s"; echo -e "$n$(sed 's/ /-/g' <<< "$n2")\n"; T='{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":'"$t"'}]},{"type":"object","args":[{"name":"foo","type":'\''"$t2"'\''}]}]}'; C="for t2 in $L; do T='$T'; c=\"json <<< '\$T'\"; echo \"$ \$c\"; eval \"\$c\"; test \$? -ne 0 && echo \"command failed: \$c\"; done"; echo -e "#\n# # meta command:\n# $ $C\n#"; eval "$C 2>&1"; echo -e "$\n"; done
#

--[ list-object-any-type ]------------------------------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":'"$t2"'}]}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
json: error: <stdin>:1:80: attribute error: invalid "list" type object: duplicated 'object' entry (previous defined at 1:24)
json: error: <stdin>:1:80: [{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":
json: error: <stdin>:1:80:                                 ^
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":"null"}]}]}'
json: error: <stdin>:1:70: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:126)
json: error: <stdin>:1:70: t","args":[{"name":"foo","type":"type"}]},{"type":"object","args"
json: error: <stdin>:1:70:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "type"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "null"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "type"
                },
                "lo": {
                    "sym": {
                        "node": "null"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "null"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":"null"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":"boolean"}]}]}'
json: error: <stdin>:1:70: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:126)
json: error: <stdin>:1:70: t","args":[{"name":"foo","type":"type"}]},{"type":"object","args"
json: error: <stdin>:1:70:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "type"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "boolean"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "type"
                },
                "lo": {
                    "sym": {
                        "node": "boolean"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "boolean"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":"boolean"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":"number"}]}]}'
json: error: <stdin>:1:70: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:126)
json: error: <stdin>:1:70: t","args":[{"name":"foo","type":"type"}]},{"type":"object","args"
json: error: <stdin>:1:70:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "type"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "number"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "type"
                },
                "lo": {
                    "sym": {
                        "node": "number"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":"number"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":"string"}]}]}'
json: error: <stdin>:1:70: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:126)
json: error: <stdin>:1:70: t","args":[{"name":"foo","type":"type"}]},{"type":"object","args"
json: error: <stdin>:1:70:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "type"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "string"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "type"
                },
                "lo": {
                    "sym": {
                        "node": "string"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "string"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":"string"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":"object"}]}]}'
json: error: <stdin>:1:70: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:126)
json: error: <stdin>:1:70: t","args":[{"name":"foo","type":"type"}]},{"type":"object","args"
json: error: <stdin>:1:70:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "type"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "object"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "type"
                },
                "lo": {
                    "sym": {
                        "node": "object"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "object"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":"object"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":"array"}]}]}'
json: error: <stdin>:1:70: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:126)
json: error: <stdin>:1:70: t","args":[{"name":"foo","type":"type"}]},{"type":"object","args"
json: error: <stdin>:1:70:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "type"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "array"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "type"
                },
                "lo": {
                    "sym": {
                        "node": "array"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "array"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":"array"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]}]}'
json: error: <stdin>:1:126: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:70)
json: error: <stdin>:1:126: t","args":[{"name":"foo","type":{"type":"object","args":[]}}]}]}
json: error: <stdin>:1:126:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "type"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": []
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "object",
                                        "args": []
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]}]}'
json: error: <stdin>:1:126: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:70)
json: error: <stdin>:1:126: t","args":[{"name":"foo","type":{"type":"object","args":[{"name":
json: error: <stdin>:1:126:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "type"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]}]}'
json: error: <stdin>:1:126: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:70)
json: error: <stdin>:1:126: t","args":[{"name":"foo","type":{"type":"array","args":"type"}}]}
json: error: <stdin>:1:126:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "type"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": "type"
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "array",
                                        "args": "type"
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]}]}'
json: error: <stdin>:1:126: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:70)
json: error: <stdin>:1:126: t","args":[{"name":"foo","type":{"type":"array","args":["number",
json: error: <stdin>:1:126:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "type"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]}]}'
$

--[ list-object-any-null ]------------------------------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":"foo","type":'"$t2"'}]}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
json: error: <stdin>:1:126: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:70)
json: error: <stdin>:1:126: t","args":[{"name":"foo","type":"type"}]}]}
json: error: <stdin>:1:126:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "null"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "null"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "null"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":"foo","type":"null"}]}]}'
json: error: <stdin>:1:80: attribute error: invalid "list" type object: duplicated 'object' entry (previous defined at 1:24)
json: error: <stdin>:1:80: [{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":
json: error: <stdin>:1:80:                                 ^
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":"foo","type":"null"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":"foo","type":"boolean"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "null"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "boolean"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "null"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "null"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": "boolean"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "boolean"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":"foo","type":"number"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "null"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "number"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "null"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "null"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": "number"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":"foo","type":"string"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "null"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "string"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "null"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "null"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": "string"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "string"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":"foo","type":"object"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "null"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "object"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "null"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "null"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": "object"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "object"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":"foo","type":"array"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "null"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "array"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "null"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "null"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": "array"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "array"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "null"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": []
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "null"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "null"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "object",
                                        "args": []
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "null"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "null"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "null"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "null"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": "type"
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "null"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "null"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "array",
                                        "args": "type"
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "null"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "null"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "null"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$

--[ list-object-any-boolean ]---------------------------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":"foo","type":'"$t2"'}]}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
json: error: <stdin>:1:129: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:70)
json: error: <stdin>:1:129: t","args":[{"name":"foo","type":"type"}]}]}
json: error: <stdin>:1:129:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "boolean"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "boolean"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "boolean"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":"foo","type":"null"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "boolean"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "null"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "boolean"
                },
                "lo": {
                    "sym": {
                        "node": "null"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "null"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "boolean"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":"foo","type":"boolean"}]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: duplicated 'object' entry (previous defined at 1:24)
json: error: <stdin>:1:83: name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":
json: error: <stdin>:1:83:                                 ^
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":"foo","type":"boolean"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":"foo","type":"number"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "boolean"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "number"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "boolean"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "boolean"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": "number"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":"foo","type":"string"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "boolean"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "string"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "boolean"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "boolean"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": "string"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "string"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":"foo","type":"object"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "boolean"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "object"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "boolean"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "boolean"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": "object"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "object"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":"foo","type":"array"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "boolean"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "array"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "boolean"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "boolean"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": "array"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "array"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "boolean"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": []
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "boolean"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "boolean"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "object",
                                        "args": []
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "boolean"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "boolean"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "boolean"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "boolean"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": "type"
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "boolean"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "boolean"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "array",
                                        "args": "type"
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "boolean"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "boolean"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "boolean"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$

--[ list-object-any-number ]----------------------------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"number"}]},{"type":"object","args":[{"name":"foo","type":'"$t2"'}]}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"number"}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
json: error: <stdin>:1:128: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:70)
json: error: <stdin>:1:128: t","args":[{"name":"foo","type":"type"}]}]}
json: error: <stdin>:1:128:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "number"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "number"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"number"}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"number"}]},{"type":"object","args":[{"name":"foo","type":"null"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "number"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "null"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "number"
                },
                "lo": {
                    "sym": {
                        "node": "null"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "null"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"number"}]},{"type":"object","args":[{"name":"foo","type":"boolean"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "number"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "boolean"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "number"
                },
                "lo": {
                    "sym": {
                        "node": "boolean"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "boolean"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"number"}]},{"type":"object","args":[{"name":"foo","type":"number"}]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: duplicated 'object' entry (previous defined at 1:24)
json: error: <stdin>:1:82: "name":"foo","type":"number"}]},{"type":"object","args":[{"name":
json: error: <stdin>:1:82:                                 ^
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"number"}]},{"type":"object","args":[{"name":"foo","type":"number"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"number"}]},{"type":"object","args":[{"name":"foo","type":"string"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "number"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "string"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "number"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": "string"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "string"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"number"}]},{"type":"object","args":[{"name":"foo","type":"object"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "number"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "object"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "number"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": "object"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "object"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"number"}]},{"type":"object","args":[{"name":"foo","type":"array"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "number"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "array"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "number"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": "array"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "array"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"number"}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "number"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": []
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "number"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "object",
                                        "args": []
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"number"}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "number"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "number"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"number"}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "number"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": "type"
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "number"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "array",
                                        "args": "type"
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"number"}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "number"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "number"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$

--[ list-object-any-string ]----------------------------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"string"}]},{"type":"object","args":[{"name":"foo","type":'"$t2"'}]}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"string"}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
json: error: <stdin>:1:128: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:70)
json: error: <stdin>:1:128: t","args":[{"name":"foo","type":"type"}]}]}
json: error: <stdin>:1:128:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "string"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "string"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "string"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"string"}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"string"}]},{"type":"object","args":[{"name":"foo","type":"null"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "string"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "null"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "string"
                },
                "lo": {
                    "sym": {
                        "node": "null"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "null"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "string"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"string"}]},{"type":"object","args":[{"name":"foo","type":"boolean"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "string"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "boolean"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "string"
                },
                "lo": {
                    "sym": {
                        "node": "boolean"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "boolean"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "string"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"string"}]},{"type":"object","args":[{"name":"foo","type":"number"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "string"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "number"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "string"
                },
                "lo": {
                    "sym": {
                        "node": "number"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "string"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"string"}]},{"type":"object","args":[{"name":"foo","type":"string"}]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: duplicated 'object' entry (previous defined at 1:24)
json: error: <stdin>:1:82: "name":"foo","type":"string"}]},{"type":"object","args":[{"name":
json: error: <stdin>:1:82:                                 ^
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"string"}]},{"type":"object","args":[{"name":"foo","type":"string"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"string"}]},{"type":"object","args":[{"name":"foo","type":"object"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "string"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "object"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "string"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "string"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": "object"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "object"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"string"}]},{"type":"object","args":[{"name":"foo","type":"array"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "string"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "array"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "string"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "string"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": "array"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "array"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"string"}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "string"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": []
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "string"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "string"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "object",
                                        "args": []
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"string"}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "string"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "string"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "string"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"string"}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "string"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": "type"
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "string"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "string"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "array",
                                        "args": "type"
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"string"}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "string"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "string"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "string"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$

--[ list-object-any-object ]----------------------------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"foo","type":'"$t2"'}]}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
json: error: <stdin>:1:128: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:70)
json: error: <stdin>:1:128: t","args":[{"name":"foo","type":"type"}]}]}
json: error: <stdin>:1:128:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "object"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "object"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "object"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"foo","type":"null"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "object"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "null"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "object"
                },
                "lo": {
                    "sym": {
                        "node": "null"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "null"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "object"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"foo","type":"boolean"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "object"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "boolean"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "object"
                },
                "lo": {
                    "sym": {
                        "node": "boolean"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "boolean"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "object"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"foo","type":"number"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "object"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "number"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "object"
                },
                "lo": {
                    "sym": {
                        "node": "number"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "object"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"foo","type":"string"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "object"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "string"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "object"
                },
                "lo": {
                    "sym": {
                        "node": "string"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "string"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "object"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"foo","type":"object"}]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: duplicated 'object' entry (previous defined at 1:24)
json: error: <stdin>:1:82: "name":"foo","type":"object"}]},{"type":"object","args":[{"name":
json: error: <stdin>:1:82:                                 ^
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"foo","type":"object"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"foo","type":"array"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "object"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "array"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "object"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "object"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": "array"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "array"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]}]}'
json: error: <stdin>:1:128: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:70)
json: error: <stdin>:1:128: t","args":[{"name":"foo","type":{"type":"object","args":[]}}]}]}
json: error: <stdin>:1:128:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "object"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": []
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "object"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "object"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "object",
                                        "args": []
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]}]}'
json: error: <stdin>:1:128: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:70)
json: error: <stdin>:1:128: t","args":[{"name":"foo","type":{"type":"object","args":[{"name":
json: error: <stdin>:1:128:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "object"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "object"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "object"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "object"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": "type"
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "object"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "object"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "array",
                                        "args": "type"
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "object"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "object"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "object"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$

--[ list-object-any-array ]-----------------------------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"foo","type":'"$t2"'}]}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
json: error: <stdin>:1:127: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:70)
json: error: <stdin>:1:127: t","args":[{"name":"foo","type":"type"}]}]}
json: error: <stdin>:1:127:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "array"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "array"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "array"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"foo","type":"null"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "array"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "null"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "array"
                },
                "lo": {
                    "sym": {
                        "node": "null"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "null"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "array"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"foo","type":"boolean"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "array"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "boolean"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "array"
                },
                "lo": {
                    "sym": {
                        "node": "boolean"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "boolean"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "array"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"foo","type":"number"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "array"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "number"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "array"
                },
                "lo": {
                    "sym": {
                        "node": "number"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "array"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"foo","type":"string"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "array"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "string"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "array"
                },
                "lo": {
                    "sym": {
                        "node": "string"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "string"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "array"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"foo","type":"object"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "array"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "object"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "array"
                },
                "lo": {
                    "sym": {
                        "node": "object"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "object"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "array"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"foo","type":"array"}]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: duplicated 'object' entry (previous defined at 1:24)
json: error: <stdin>:1:81: {"name":"foo","type":"array"}]},{"type":"object","args":[{"name":
json: error: <stdin>:1:81:                                 ^
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"foo","type":"array"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "array"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": []
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "array"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "array"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "object",
                                        "args": []
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "array"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "array"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "array"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]}]}'
json: error: <stdin>:1:127: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:70)
json: error: <stdin>:1:127: t","args":[{"name":"foo","type":{"type":"array","args":"type"}}]}
json: error: <stdin>:1:127:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "array"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": "type"
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "array"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "array"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "array",
                                        "args": "type"
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]}]}'
json: error: <stdin>:1:127: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:70)
json: error: <stdin>:1:127: t","args":[{"name":"foo","type":{"type":"array","args":["number",
json: error: <stdin>:1:127:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "array"
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": "array"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": "array"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]}]}'
$

--[ list-object-object ]--------------------------------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]},{"type":"object","args":[{"name":"foo","type":'"$t2"'}]}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
json: error: <stdin>:1:70: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:147)
json: error: <stdin>:1:70: t","args":[{"name":"foo","type":{"type":"object","args":[]}}]},{"
json: error: <stdin>:1:70:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": []
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "object",
                        "args": []
                    }
                },
                "lo": {
                    "sym": {
                        "node": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "object",
                                    "args": []
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]},{"type":"object","args":[{"name":"foo","type":"null"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": []
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "null"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "object",
                        "args": []
                    }
                },
                "lo": {
                    "sym": {
                        "node": "null"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "null"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "object",
                                    "args": []
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]},{"type":"object","args":[{"name":"foo","type":"boolean"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": []
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "boolean"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "object",
                        "args": []
                    }
                },
                "lo": {
                    "sym": {
                        "node": "boolean"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "boolean"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "object",
                                    "args": []
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]},{"type":"object","args":[{"name":"foo","type":"number"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": []
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "number"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "object",
                        "args": []
                    }
                },
                "lo": {
                    "sym": {
                        "node": "number"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "object",
                                    "args": []
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]},{"type":"object","args":[{"name":"foo","type":"string"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": []
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "string"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "object",
                        "args": []
                    }
                },
                "lo": {
                    "sym": {
                        "node": "string"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "string"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "object",
                                    "args": []
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]},{"type":"object","args":[{"name":"foo","type":"object"}]}]}'
json: error: <stdin>:1:70: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:147)
json: error: <stdin>:1:70: t","args":[{"name":"foo","type":{"type":"object","args":[]}}]},{"
json: error: <stdin>:1:70:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": []
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "object"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "object",
                        "args": []
                    }
                },
                "lo": {
                    "sym": {
                        "node": "object"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "object"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "object",
                                    "args": []
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]},{"type":"object","args":[{"name":"foo","type":"object"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]},{"type":"object","args":[{"name":"foo","type":"array"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": []
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "array"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "object",
                        "args": []
                    }
                },
                "lo": {
                    "sym": {
                        "node": "array"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "array"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "object",
                                    "args": []
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]}]}'
json: error: <stdin>:1:101: attribute error: invalid "list" type object: duplicated 'object' entry (previous defined at 1:24)
json: error: <stdin>:1:101: :{"type":"object","args":[]}}]},{"type":"object","args":[{"name":
json: error: <stdin>:1:101:                                 ^
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]}]}'
json: error: <stdin>:1:70: attribute error: invalid "list" type object: sort of object of object type not yet supported (the other inner object is at 1:147)
json: error: <stdin>:1:70: t","args":[{"name":"foo","type":{"type":"object","args":[]}}]},{"
json: error: <stdin>:1:70:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": []
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "object",
                        "args": []
                    }
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "object",
                                    "args": []
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": []
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": "type"
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "object",
                        "args": []
                    }
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "object",
                                    "args": []
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "array",
                                        "args": "type"
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": []
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "object",
                        "args": []
                    }
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "object",
                                    "args": []
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$

--[ list-object-object2 ]-------------------------------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]},{"type":"object","args":[{"name":"foo","type":'"$t2"'}]}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
json: error: <stdin>:1:70: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:209)
json: error: <stdin>:1:70: t","args":[{"name":"foo","type":{"type":"object","args":[{"name":
json: error: <stdin>:1:70:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                },
                "lo": {
                    "sym": {
                        "node": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]},{"type":"object","args":[{"name":"foo","type":"null"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "null"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                },
                "lo": {
                    "sym": {
                        "node": "null"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "null"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]},{"type":"object","args":[{"name":"foo","type":"boolean"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "boolean"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                },
                "lo": {
                    "sym": {
                        "node": "boolean"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "boolean"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]},{"type":"object","args":[{"name":"foo","type":"number"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "number"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                },
                "lo": {
                    "sym": {
                        "node": "number"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]},{"type":"object","args":[{"name":"foo","type":"string"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "string"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                },
                "lo": {
                    "sym": {
                        "node": "string"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "string"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]},{"type":"object","args":[{"name":"foo","type":"object"}]}]}'
json: error: <stdin>:1:70: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:209)
json: error: <stdin>:1:70: t","args":[{"name":"foo","type":{"type":"object","args":[{"name":
json: error: <stdin>:1:70:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "object"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                },
                "lo": {
                    "sym": {
                        "node": "object"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "object"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]},{"type":"object","args":[{"name":"foo","type":"object"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]},{"type":"object","args":[{"name":"foo","type":"array"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "array"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                },
                "lo": {
                    "sym": {
                        "node": "array"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "array"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]}]}'
json: error: <stdin>:1:209: attribute error: invalid "list" type object: sort of object of object type not yet supported (the other inner object is at 1:70)
json: error: <stdin>:1:209: t","args":[{"name":"foo","type":{"type":"object","args":[]}}]}]}
json: error: <stdin>:1:209:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": []
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                },
                "lo": {
                    "sym": {
                        "node": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "object",
                                        "args": []
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]}]}'
json: error: <stdin>:1:163: attribute error: invalid "list" type object: duplicated 'object' entry (previous defined at 1:24)
json: error: <stdin>:1:163: me":"baz","type":"number"}]}}]},{"type":"object","args":[{"name":
json: error: <stdin>:1:163:                                 ^
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": "type"
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "array",
                                        "args": "type"
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$

--[ list-object-array ]---------------------------------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]},{"type":"object","args":[{"name":"foo","type":'"$t2"'}]}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
json: error: <stdin>:1:70: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:150)
json: error: <stdin>:1:70: t","args":[{"name":"foo","type":{"type":"array","args":"type"}}]}
json: error: <stdin>:1:70:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": "type"
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "array",
                        "args": "type"
                    }
                },
                "lo": {
                    "sym": {
                        "node": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "array",
                                    "args": "type"
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]},{"type":"object","args":[{"name":"foo","type":"null"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": "type"
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "null"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "array",
                        "args": "type"
                    }
                },
                "lo": {
                    "sym": {
                        "node": "null"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "null"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "array",
                                    "args": "type"
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]},{"type":"object","args":[{"name":"foo","type":"boolean"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": "type"
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "boolean"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "array",
                        "args": "type"
                    }
                },
                "lo": {
                    "sym": {
                        "node": "boolean"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "boolean"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "array",
                                    "args": "type"
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]},{"type":"object","args":[{"name":"foo","type":"number"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": "type"
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "number"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "array",
                        "args": "type"
                    }
                },
                "lo": {
                    "sym": {
                        "node": "number"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "array",
                                    "args": "type"
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]},{"type":"object","args":[{"name":"foo","type":"string"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": "type"
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "string"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "array",
                        "args": "type"
                    }
                },
                "lo": {
                    "sym": {
                        "node": "string"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "string"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "array",
                                    "args": "type"
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]},{"type":"object","args":[{"name":"foo","type":"object"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": "type"
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "object"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "array",
                        "args": "type"
                    }
                },
                "lo": {
                    "sym": {
                        "node": "object"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "object"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "array",
                                    "args": "type"
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]},{"type":"object","args":[{"name":"foo","type":"array"}]}]}'
json: error: <stdin>:1:70: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:150)
json: error: <stdin>:1:70: t","args":[{"name":"foo","type":{"type":"array","args":"type"}}]}
json: error: <stdin>:1:70:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": "type"
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "array"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "array",
                        "args": "type"
                    }
                },
                "lo": {
                    "sym": {
                        "node": "array"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "array"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "array",
                                    "args": "type"
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]},{"type":"object","args":[{"name":"foo","type":"array"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": "type"
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": []
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "array",
                        "args": "type"
                    }
                },
                "lo": {
                    "sym": {
                        "node": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "object",
                                        "args": []
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "array",
                                    "args": "type"
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": "type"
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "array",
                        "args": "type"
                    }
                },
                "lo": {
                    "sym": {
                        "node": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "array",
                                    "args": "type"
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]}]}'
json: error: <stdin>:1:104: attribute error: invalid "list" type object: duplicated 'object' entry (previous defined at 1:24)
json: error: <stdin>:1:104: type":"array","args":"type"}}]},{"type":"object","args":[{"name":
json: error: <stdin>:1:104:                                 ^
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]}]}'
json: error: <stdin>:1:70: attribute error: invalid "list" type object: sort of object of array type not yet supported (the other inner array is at 1:150)
json: error: <stdin>:1:70: t","args":[{"name":"foo","type":{"type":"array","args":"type"}}]}
json: error: <stdin>:1:70:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": "type"
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "array",
                        "args": "type"
                    }
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "array",
                                    "args": "type"
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "node": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]}]}'
$

--[ list-object-array2 ]--------------------------------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]},{"type":"object","args":[{"name":"foo","type":'"$t2"'}]}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
json: error: <stdin>:1:70: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:163)
json: error: <stdin>:1:70: t","args":[{"name":"foo","type":{"type":"array","args":["number",
json: error: <stdin>:1:70:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                },
                "lo": {
                    "sym": {
                        "node": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]},{"type":"object","args":[{"name":"foo","type":"null"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "null"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                },
                "lo": {
                    "sym": {
                        "node": "null"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "null"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]},{"type":"object","args":[{"name":"foo","type":"boolean"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "boolean"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                },
                "lo": {
                    "sym": {
                        "node": "boolean"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "boolean"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]},{"type":"object","args":[{"name":"foo","type":"number"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "number"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                },
                "lo": {
                    "sym": {
                        "node": "number"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]},{"type":"object","args":[{"name":"foo","type":"string"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "string"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                },
                "lo": {
                    "sym": {
                        "node": "string"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "string"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]},{"type":"object","args":[{"name":"foo","type":"object"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "object"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                },
                "lo": {
                    "sym": {
                        "node": "object"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "object"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]},{"type":"object","args":[{"name":"foo","type":"array"}]}]}'
json: error: <stdin>:1:70: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:163)
json: error: <stdin>:1:70: t","args":[{"name":"foo","type":{"type":"array","args":["number",
json: error: <stdin>:1:70:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": "array"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                },
                "lo": {
                    "sym": {
                        "node": "array"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": "array"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]},{"type":"object","args":[{"name":"foo","type":"array"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[]}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": []
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                },
                "lo": {
                    "sym": {
                        "node": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "object",
                                        "args": []
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]},{"type":"object","args":[{"name":"foo","type":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                },
                "lo": {
                    "sym": {
                        "node": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]}]}'
json: error: <stdin>:1:163: attribute error: invalid "list" type object: sort of object of array type not yet supported (the other inner array is at 1:70)
json: error: <stdin>:1:163: t","args":[{"name":"foo","type":{"type":"array","args":"type"}}]}
json: error: <stdin>:1:163:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "foo",
                    "type": {
                        "type": "array",
                        "args": "type"
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": {
            "sym": {
                "name": "foo"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    }
                },
                "lo": {
                    "sym": {
                        "node": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "foo",
                                    "type": {
                                        "type": "array",
                                        "args": "type"
                                    }
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "foo",
                                "type": {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": null
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]}]}'
json: error: <stdin>:1:117: attribute error: invalid "list" type object: duplicated 'object' entry (previous defined at 1:24)
json: error: <stdin>:1:117: ,"args":["number","object"]}}]},{"type":"object","args":[{"name":
json: error: <stdin>:1:117:                                 ^
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]},{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number","object"]}}]}]}'
$

#
# # end of meta meta command
#

--[ list-empty-closed-array ]---------------------------------------------------

$ json <<< '{"type":"list","args":[{"type":"array","args":[]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": []
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "val": {
                    "type": "array",
                    "args": []
                },
                "lo": null,
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[]},{"type":"array","args":[]}]}'
json: error: <stdin>:1:51: attribute error: invalid "list" type object: duplicated 'closed array' entry (previous defined at 1:24)
json: error: <stdin>:1:51: gs":[{"type":"array","args":[]},{"type":"array","args":[]}]}
json: error: <stdin>:1:51:                                 ^
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[]},{"type":"array","args":[]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[]},{"type":"array","args":[]},{"type":"array","args":[]}]}'
json: error: <stdin>:1:51: attribute error: invalid "list" type object: duplicated 'closed array' entry (previous defined at 1:24)
json: error: <stdin>:1:51: gs":[{"type":"array","args":[]},{"type":"array","args":[]},{"type
json: error: <stdin>:1:51:                                 ^
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[]},{"type":"array","args":[]},{"type":"array","args":[]}]}'
$

--[ list-open-array-any-empty-closed-array ]------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do T='{"type":"list","args":[{"type":"array","args":"'"$t"'"},{"type":"array","args":[]}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test "$?" -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[]
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": []
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "val": {
                    "type": "array",
                    "args": []
                },
                "lo": null,
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"null"},{"type":"array","args":[]
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": []
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "val": {
                    "type": "array",
                    "args": []
                },
                "lo": null,
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:58)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"boolean"},{"type":"array","args"
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": []
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "val": {
                    "type": "array",
                    "args": []
                },
                "lo": null,
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"number"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": []
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "val": {
                    "type": "array",
                    "args": []
                },
                "lo": null,
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"string"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": []
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "val": {
                    "type": "array",
                    "args": []
                },
                "lo": null,
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": []
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "val": {
                    "type": "array",
                    "args": []
                },
                "lo": null,
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:56)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": []
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "val": {
                    "type": "array",
                    "args": []
                },
                "lo": null,
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[]}]}'
$

#
# # meta meta command:
# $ o=0; a=0; A=('"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'); L=''; for t in "${A[@]}"; do L+="${L:+ }'$t'"; done; for t in "${A[@]}"; do case "$t" in \"*) n="any-${t:1:$((${#t} - 2))}";; \{\"type\":\"object\"*) n="$((++ o))"; test "$n" -eq 1 && n=""; n="object$n";; \{\"type\":\"array\"*)  n="$((++ a))"; test "$n" -eq 1 && n=""; n="array$n";; *) error "unexpected t='$t'";; esac; n="--[ list-open-array-$n-closed-array ]"; printf -v n2 "%$((80 - ${#n}))s"; echo -e "$n$(sed 's/ /-/g' <<< "$n2")\n"; T='{"type":"list","args":[{"type":"array","args":'"$t"'},{"type":"array","args":['\''"$t2"'\'']}]}'; C="for t2 in $L; do T='$T'; c=\"json <<< '\$T'\"; echo \"$ \$c\"; eval \"\$c\"; test \$? -ne 0 && echo \"command failed: \$c\"; done"; echo -e "#\n# # meta command:\n# $ $C\n#"; eval "$C 2>&1"; echo -e "$\n"; done
#

--[ list-open-array-any-type-closed-array ]-------------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":['"$t2"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-any-null-closed-array ]-------------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":['"$t2"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"null"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"null"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-boolean-closed-array ]----------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":['"$t2"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:58)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"boolean"},{"type":"array","args"
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:58)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"boolean"},{"type":"array","args"
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-number-closed-array ]-----------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":['"$t2"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"number"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"number"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-string-closed-array ]-----------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":['"$t2"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"string"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"string"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-object-closed-array ]-----------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":['"$t2"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-array-closed-array ]------------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":['"$t2"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:56)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:56)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:56)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:56)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-object-closed-array ]---------------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":['"$t2"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:76)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:76)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:76)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:100)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-object2-closed-array ]--------------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":['"$t2"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:138)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:138)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:162)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:138)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-array-closed-array ]----------------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":['"$t2"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:79)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:79)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:79)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:103)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-array2-closed-array ]---------------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":['"$t2"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:92)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:92)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:116)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:92)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":["number","object"]}]}]}'
$

#
# # end of meta meta command
#

--[ list-closed-array-any-closed-array-any ]------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do for t2 in type null boolean number string object array; do T='{"type":"list","args":[{"type":"array","args":["'"$t"'"]},{"type":"array","args":["'"$t2"'"]}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test "$?" -ne 0 && echo "command failed: $c"; done; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:57: attribute error: invalid "list" type object: duplicated 'closed array' entry (previous defined at 1:24)
json: error: <stdin>:1:57: "type":"array","args":["type"]},{"type":"array","args":["type"]}]
json: error: <stdin>:1:57:                                 ^
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: null"]},{"type":"array","args":["type"]}]}
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["null"]}]}'
json: error: <stdin>:1:57: attribute error: invalid "list" type object: duplicated 'closed array' entry (previous defined at 1:24)
json: error: <stdin>:1:57: "type":"array","args":["null"]},{"type":"array","args":["null"]}]
json: error: <stdin>:1:57:                                 ^
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:84: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:84: lean"]},{"type":"array","args":["type"]}]}
json: error: <stdin>:1:84:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["boolean"]}]}'
json: error: <stdin>:1:60: attribute error: invalid "list" type object: duplicated 'closed array' entry (previous defined at 1:24)
json: error: <stdin>:1:60: pe":"array","args":["boolean"]},{"type":"array","args":["boolean"
json: error: <stdin>:1:60:                                 ^
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: mber"]},{"type":"array","args":["type"]}]}
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["number"]}]}'
json: error: <stdin>:1:59: attribute error: invalid "list" type object: duplicated 'closed array' entry (previous defined at 1:24)
json: error: <stdin>:1:59: ype":"array","args":["number"]},{"type":"array","args":["number"]
json: error: <stdin>:1:59:                                 ^
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ring"]},{"type":"array","args":["type"]}]}
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["string"]}]}'
json: error: <stdin>:1:59: attribute error: invalid "list" type object: duplicated 'closed array' entry (previous defined at 1:24)
json: error: <stdin>:1:59: ype":"array","args":["string"]},{"type":"array","args":["string"]
json: error: <stdin>:1:59:                                 ^
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":["type"]}]}
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["object"]}]}'
json: error: <stdin>:1:59: attribute error: invalid "list" type object: duplicated 'closed array' entry (previous defined at 1:24)
json: error: <stdin>:1:59: ype":"array","args":["object"]},{"type":"array","args":["object"]
json: error: <stdin>:1:59:                                 ^
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":["type"]}]}
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["array"]}]}'
json: error: <stdin>:1:58: attribute error: invalid "list" type object: duplicated 'closed array' entry (previous defined at 1:24)
json: error: <stdin>:1:58: type":"array","args":["array"]},{"type":"array","args":["array"]}
json: error: <stdin>:1:58:                                 ^
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["array"]}]}'
$

#
# # meta meta command:
# $ o=0; a=0; A=('"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'); L=''; for t in "${A[@]}"; do L+="${L:+ }'$t'"; done; for t in "${A[@]}"; do case "$t" in \"*) n="any-${t:1:$((${#t} - 2))}";; \{\"type\":\"object\"*) n="$((++ o))"; test "$n" -eq 1 && n=""; n="object$n";; \{\"type\":\"array\"*)  n="$((++ a))"; test "$n" -eq 1 && n=""; n="array$n";; *) error "unexpected t='$t'";; esac; n="--[ list-closed-array-$n-closed-array ]"; printf -v n2 "%$((80 - ${#n}))s"; echo -e "$n$(sed 's/ /-/g' <<< "$n2")\n"; T='{"type":"list","args":[{"type":"array","args":['"$t"']},{"type":"array","args":['\''"$t2"'\'']}]}'; C="for t2 in $L; do test \"\$t2\" == '$t' && continue; T='$T'; c=\"json <<< '\$T'\"; echo \"$ \$c\"; eval \"\$c\"; test \$? -ne 0 && echo \"command failed: \$c\"; done"; echo -e "#\n# # meta command:\n# $ $C\n#"; eval "$C 2>&1"; echo -e "$\n"; done
#

--[ list-closed-array-any-type-closed-array ]-----------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do test "$t2" == '"type"' && continue; T='{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":['"$t2"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"object","args":[]}]}]}
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"array","args":"type"}]}]
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-any-null-closed-array ]-----------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do test "$t2" == '"null"' && continue; T='{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":['"$t2"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: null"]},{"type":"array","args":["type"]}]}
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-boolean-closed-array ]--------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do test "$t2" == '"boolean"' && continue; T='{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":['"$t2"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:84: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:84: lean"]},{"type":"array","args":["type"]}]}
json: error: <stdin>:1:84:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-number-closed-array ]---------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do test "$t2" == '"number"' && continue; T='{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":['"$t2"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: mber"]},{"type":"array","args":["type"]}]}
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-string-closed-array ]---------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do test "$t2" == '"string"' && continue; T='{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":['"$t2"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ring"]},{"type":"array","args":["type"]}]}
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-object-closed-array ]---------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do test "$t2" == '"object"' && continue; T='{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":['"$t2"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":["type"]}]}
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":[{"type":"object","args":[]}]}]}
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-array-closed-array ]----------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do test "$t2" == '"array"' && continue; T='{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":['"$t2"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":["type"]}]}
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":[{"type":"array","args":"type"}]}]
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-object-closed-array ]-------------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do test "$t2" == '{"type":"object","args":[]}' && continue; T='{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":['"$t2"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["object"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-object2-closed-array ]------------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do test "$t2" == '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' && continue; T='{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":['"$t2"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:164)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["object"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:164)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:164: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:48)
json: error: <stdin>:1:164: r"}]}]},{"type":"array","args":[{"type":"object","args":[]}]}]}
json: error: <stdin>:1:164:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-array-closed-array ]--------------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do test "$t2" == '{"type":"array","args":"type"}' && continue; T='{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":['"$t2"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["array"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-array2-closed-array ]-------------------------------------

#
# # meta command:
# $ for t2 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do test "$t2" == '{"type":"array","args":["number","object"]}' && continue; T='{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":['"$t2"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:118)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["array"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:118)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:118: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:48)
json: error: <stdin>:1:118: ct"]}]},{"type":"array","args":[{"type":"array","args":"type"}]}]
json: error: <stdin>:1:118:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":"type"}]}]}'
$

#
# # end of meta meta command
#

#
# # meta meta command:
# $ o=0; a=0; A=('"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'); L=''; for t in "${A[@]}"; do L+="${L:+ }'$t'"; done; for t in "${A[@]}"; do case "$t" in \"*) n="any-${t:1:$((${#t} - 2))}";; \{\"type\":\"object\"*) n="$((++ o))"; test "$n" -eq 1 && n=""; n="object$n";; \{\"type\":\"array\"*)  n="$((++ a))"; test "$n" -eq 1 && n=""; n="array$n";; *) error "unexpected t='$t'";; esac; o2=0; a2=0; for t2 in "${A[@]}"; do case "$t2" in \"*) n2="any-${t2:1:$((${#t2} - 2))}";; \{\"type\":\"object\"*) n2="$((++ o2))"; test "$n2" -eq 1 && n2=""; n2="object$n2";; \{\"type\":\"array\"*)  n2="$((++ a2))"; test "$n2" -eq 1 && n2=""; n2="array$n2";; *) error "unexpected t2='$t2'";; esac; n3="--[ list-open-array-$n-closed-array-$n2 ]"; printf -v N "%$((80 - ${#n3}))s"; echo -e "$n3$(sed 's/ /-/g' <<< "$N")\n"; T='{"type":"list","args":[{"type":"array","args":'"$t"'},{"type":"array","args":['"$t2"','\''"$t3"'\'']}]}'; C="for t3 in $L; do T='$T'; c=\"json <<< '\$T'\"; echo \"$ \$c\"; eval \"\$c\"; test \$? -ne 0 && echo \"command failed: \$c\"; done"; echo -e "#\n# # meta command:\n# $ $C\n#"; eval "$C 2>&1"; echo -e "$\n"; done; done
#

--[ list-open-array-any-type-closed-array-any-type ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["type",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["type","type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "type",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["type","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["type","null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "type",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["type","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["type","boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "type",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["type","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["type","number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "type",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["type","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["type","string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "type",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["type","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["type","object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "type",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["type","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["type","array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "type",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["type","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-any-type-closed-array-any-null ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["null",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["null","type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "null",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["null","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["null","null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "null",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["null","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["null","boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "null",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["null","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["null","number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "null",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["null","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["null","string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "null",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["null","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["null","object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "null",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["null","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["null","array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "null",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["null","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["null",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["null",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["null",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["null",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["null",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["null",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["null",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["null",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-any-type-closed-array-any-boolean ]-------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["boolean",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["boolean","type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["boolean","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["boolean","null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["boolean","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["boolean","boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["boolean","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["boolean","number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["boolean","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["boolean","string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["boolean","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["boolean","object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["boolean","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["boolean","array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["boolean","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["boolean",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["boolean",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["boolean",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["boolean",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["boolean",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["boolean",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["boolean",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["boolean",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-any-type-closed-array-any-number ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["number",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["number","type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "number",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["number","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["number","null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "number",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["number","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["number","boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "number",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["number","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["number","number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "number",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["number","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["number","string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "number",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["number","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "number",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["number","array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "number",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["number","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["number",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["number",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["number",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["number",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["number",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["number",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["number",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["number",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-any-type-closed-array-any-string ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["string",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["string","type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "string",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["string","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["string","null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "string",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["string","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["string","boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "string",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["string","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["string","number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "string",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["string","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["string","string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "string",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["string","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["string","object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "string",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["string","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["string","array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "string",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["string","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["string",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["string",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["string",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["string",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["string",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["string",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["string",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["string",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-any-type-closed-array-any-object ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["object",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["object","type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "object",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["object","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["object","null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "object",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["object","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["object","boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "object",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["object","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["object","number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "object",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["object","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["object","string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "object",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["object","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["object","object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "object",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["object","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["object","array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "object",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["object","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-any-type-closed-array-any-array ]---------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["array",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["array","type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "array",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["array","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["array","null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "array",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["array","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["array","boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "array",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["array","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["array","number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "array",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["array","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["array","string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "array",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["array","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["array","object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "array",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["array","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["array","array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "array",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["array","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-any-type-closed-array-object ]------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-any-type-closed-array-object2 ]-----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-any-type-closed-array-array ]-------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":"type"},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-any-type-closed-array-array2 ]------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":["number","object"]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"type"},{"type":"array","args":[{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "type"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-any-null-closed-array-any-type ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["type",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["type","type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"null"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "type",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["type","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["type","null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"null"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "type",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["type","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["type","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "type",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["type","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "type",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["type","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "type",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["type","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "type",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["type","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "type",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-null-closed-array-any-null ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["null",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["null","type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"null"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "null",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["null","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["null","null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:55)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"null"},{"type":"array","args":["
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "null",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["null","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["null","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "null",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["null","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "null",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["null","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "null",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["null","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "null",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["null","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "null",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["null",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["null",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["null",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["null",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-null-closed-array-any-boolean ]-------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["boolean",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["boolean","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["boolean","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["boolean","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["boolean","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["boolean","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["boolean","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["boolean","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["boolean",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["boolean",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["boolean",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["boolean",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-null-closed-array-any-number ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["number",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["number","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "number",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["number","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "number",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["number","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "number",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["number","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "number",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["number","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "number",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["number","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "number",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["number","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "number",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["number",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["number",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["number",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["number",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-null-closed-array-any-string ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["string",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["string","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "string",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["string","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "string",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["string","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "string",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["string","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "string",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["string","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "string",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["string","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "string",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["string","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "string",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["string",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["string",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["string",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["string",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-null-closed-array-any-object ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["object",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["object","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "object",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["object","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "object",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["object","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "object",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["object","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "object",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["object","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "object",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["object","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "object",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["object","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "object",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-null-closed-array-any-array ]---------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["array",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["array","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "array",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["array","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "array",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["array","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "array",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["array","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "array",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["array","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "array",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["array","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "array",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["array","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "array",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-null-closed-array-object ]------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"object","args":[]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-null-closed-array-object2 ]-----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-null-closed-array-array ]-------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"array","args":"type"},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-null-closed-array-array2 ]------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"array","args":["number","object"]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "null"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-boolean-closed-array-any-type ]-------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["type",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["type","type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:58)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"boolean"},{"type":"array","args"
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "type",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["type","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["type","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "type",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["type","boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:58)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"boolean"},{"type":"array","args"
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "type",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["type","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["type","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "type",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["type","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "type",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["type","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "type",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["type","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "type",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-boolean-closed-array-any-null ]-------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["null",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["null","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "null",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["null","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "null",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["null","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "null",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["null","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "null",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["null","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "null",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["null","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "null",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["null","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "null",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["null",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["null",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["null",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["null",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-boolean-closed-array-any-boolean ]----------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["boolean",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["boolean","type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:58)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"boolean"},{"type":"array","args"
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["boolean","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["boolean","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["boolean","boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:58)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"boolean"},{"type":"array","args"
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["boolean","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["boolean","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["boolean","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["boolean","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["boolean","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["boolean",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["boolean",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["boolean",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["boolean",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-boolean-closed-array-any-number ]-----------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["number",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["number","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "number",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["number","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "number",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["number","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "number",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["number","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "number",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["number","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "number",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["number","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "number",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["number","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "number",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["number",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["number",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["number",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["number",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-boolean-closed-array-any-string ]-----------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["string",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["string","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "string",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["string","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "string",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["string","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "string",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["string","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "string",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["string","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "string",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["string","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "string",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["string","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "string",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["string",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["string",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["string",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["string",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-boolean-closed-array-any-object ]-----------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["object",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["object","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "object",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["object","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "object",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["object","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "object",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["object","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "object",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["object","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "object",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["object","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "object",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["object","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "object",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-boolean-closed-array-any-array ]------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["array",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["array","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "array",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["array","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "array",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["array","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "array",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["array","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "array",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["array","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "array",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["array","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "array",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["array","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "array",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-boolean-closed-array-object ]---------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"object","args":[]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-boolean-closed-array-object2 ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-boolean-closed-array-array ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"array","args":"type"},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-boolean-closed-array-array2 ]---------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"array","args":["number","object"]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "boolean"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-number-closed-array-any-type ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["type",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["type","type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"number"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "type",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["type","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["type","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "type",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["type","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "type",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["type","number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"number"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "type",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["type","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["type","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "type",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["type","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "type",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["type","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "type",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-number-closed-array-any-null ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["null",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["null","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "null",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["null","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "null",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["null","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "null",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["null","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "null",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["null","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "null",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["null","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "null",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["null","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "null",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["null",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["null",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["null",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["null",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-number-closed-array-any-boolean ]-----------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["boolean",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["boolean","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["boolean","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["boolean","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["boolean","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["boolean","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["boolean","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["boolean","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["boolean",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["boolean",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["boolean",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["boolean",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-number-closed-array-any-number ]------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["number",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["number","type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"number"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "number",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["number","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["number","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "number",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["number","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "number",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["number","number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"number"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "number",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["number","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["number","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "number",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["number","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "number",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["number","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "number",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["number",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["number",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["number",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["number",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-number-closed-array-any-string ]------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["string",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["string","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "string",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["string","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "string",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["string","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "string",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["string","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "string",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["string","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "string",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["string","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "string",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["string","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "string",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["string",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["string",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["string",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["string",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-number-closed-array-any-object ]------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["object",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["object","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "object",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["object","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "object",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["object","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "object",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["object","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "object",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["object","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "object",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["object","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "object",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["object","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "object",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-number-closed-array-any-array ]-------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["array",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["array","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "array",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["array","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "array",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["array","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "array",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["array","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "array",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["array","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "array",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["array","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "array",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["array","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "array",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-number-closed-array-object ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"object","args":[]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-number-closed-array-object2 ]---------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-number-closed-array-array ]-----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"array","args":"type"},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-number-closed-array-array2 ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"array","args":["number","object"]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "number"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-string-closed-array-any-type ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["type",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["type","type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"string"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "type",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["type","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["type","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "type",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["type","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "type",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["type","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "type",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["type","string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"string"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "type",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["type","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["type","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "type",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["type","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "type",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-string-closed-array-any-null ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["null",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["null","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "null",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["null","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "null",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["null","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "null",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["null","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "null",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["null","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "null",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["null","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "null",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["null","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "null",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["null",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["null",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["null",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["null",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-string-closed-array-any-boolean ]-----------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["boolean",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["boolean","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["boolean","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["boolean","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["boolean","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["boolean","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["boolean","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["boolean","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["boolean",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["boolean",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["boolean",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["boolean",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-string-closed-array-any-number ]------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["number",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["number","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "number",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["number","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "number",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["number","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "number",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["number","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "number",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["number","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "number",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["number","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "number",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["number","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "number",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["number",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["number",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["number",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["number",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-string-closed-array-any-string ]------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["string",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["string","type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"string"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "string",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["string","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["string","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "string",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["string","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "string",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["string","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "string",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["string","string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"string"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "string",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["string","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["string","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "string",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["string","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "string",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["string",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["string",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["string",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["string",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-string-closed-array-any-object ]------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["object",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["object","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "object",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["object","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "object",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["object","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "object",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["object","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "object",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["object","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "object",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["object","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "object",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["object","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "object",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-string-closed-array-any-array ]-------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["array",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["array","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "array",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["array","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "array",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["array","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "array",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["array","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "array",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["array","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "array",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["array","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "array",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["array","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "array",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-string-closed-array-object ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"object","args":[]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-string-closed-array-object2 ]---------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-string-closed-array-array ]-----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"array","args":"type"},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-string-closed-array-array2 ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"array","args":["number","object"]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "string"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-object-closed-array-any-type ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["type",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["type","type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "type",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["type","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["type","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "type",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["type","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "type",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["type","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "type",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["type","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "type",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["type","object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "type",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["type","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["type","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "type",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-object-closed-array-any-null ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["null",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["null","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "null",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["null","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "null",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["null","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "null",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["null","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "null",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["null","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "null",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["null","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "null",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["null","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "null",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["null",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["null",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["null",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["null",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-object-closed-array-any-boolean ]-----------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["boolean",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["boolean","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["boolean","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["boolean","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["boolean","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["boolean","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["boolean","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["boolean","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["boolean",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["boolean",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["boolean",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["boolean",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-object-closed-array-any-number ]------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["number",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["number","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "number",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["number","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "number",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["number","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "number",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["number","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "number",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["number","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "number",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["number","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "number",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["number","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "number",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["number",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["number",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["number",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["number",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-object-closed-array-any-string ]------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["string",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["string","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "string",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["string","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "string",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["string","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "string",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["string","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "string",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["string","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "string",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["string","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "string",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["string","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "string",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["string",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["string",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["string",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["string",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-object-closed-array-any-object ]------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["object",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["object","type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "object",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["object","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["object","null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:81)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "object",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["object","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["object","boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:81)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "object",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["object","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["object","number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:81)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "object",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["object","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["object","string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:81)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "object",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["object","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["object","object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "object",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["object","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["object","array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:81)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "object",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["object","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:81)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:81)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-any-object-closed-array-any-array ]-------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["array",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["array","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "array",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["array","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "array",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["array","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "array",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["array","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "array",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["array","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "array",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["array","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "array",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["array","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "array",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-object-closed-array-object ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:81)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:81)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:81)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:81)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:81)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:81)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:81)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-any-object-closed-array-object2 ]---------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:81)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:81)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:81)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:81)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:81)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:57)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:81)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:81)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"object"},{"type":"array","args":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-any-object-closed-array-array ]-----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"array","args":"type"},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-object-closed-array-array2 ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"array","args":["number","object"]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "object"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-array-closed-array-any-type ]---------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["type",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["type","type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:56)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "type",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["type","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["type","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "type",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["type","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "type",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["type","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "type",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["type","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "type",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["type","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "type",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["type","array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:56)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "type",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["type","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:56)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:56)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-any-array-closed-array-any-null ]---------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["null",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["null","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "null",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["null","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "null",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["null","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "null",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["null","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "null",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["null","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "null",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["null","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "null",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["null","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "null",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["null",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["null",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["null",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["null",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-array-closed-array-any-boolean ]------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["boolean",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["boolean","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["boolean","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["boolean","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["boolean","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["boolean","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["boolean","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["boolean","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["boolean",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["boolean",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["boolean",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["boolean",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-array-closed-array-any-number ]-------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["number",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["number","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "number",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["number","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "number",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["number","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "number",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["number","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "number",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["number","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "number",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["number","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "number",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["number","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "number",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["number",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["number",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["number",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["number",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-array-closed-array-any-string ]-------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["string",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["string","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "string",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["string","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "string",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["string","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "string",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["string","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "string",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["string","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "string",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["string","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "string",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["string","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "string",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["string",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["string",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["string",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["string",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-array-closed-array-any-object ]-------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["object",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["object","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "object",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["object","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "object",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["object","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "object",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["object","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "object",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["object","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "object",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["object","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "object",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["object","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "object",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-array-closed-array-any-array ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["array",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["array","type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:56)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "array",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["array","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["array","null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:80)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "array",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["array","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["array","boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:80)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "array",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["array","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["array","number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:80)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "array",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["array","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["array","string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:80)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "array",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["array","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["array","object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:80)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "array",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["array","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["array","array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:56)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "array",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["array","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:80)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:80)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:56)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:56)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-any-array-closed-array-object ]-----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"object","args":[]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-array-closed-array-object2 ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-any-array-closed-array-array ]------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":"type"},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:56)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:80)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:80)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:80)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:80)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:80)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:56)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:80)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:80)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:56)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:56)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-any-array-closed-array-array2 ]-----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":["number","object"]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:56)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:80)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:80)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:80)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:80)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:80)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:56)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:80)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:80)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:56)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:56)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":"array"},{"type":"array","args":[
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": "array"
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-object-closed-array-any-type ]------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["type",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["type","type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:76)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["type","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["type","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["type","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["type","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["type","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["type","object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:76)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["type","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["type","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:76)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-object-closed-array-any-null ]------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["null",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["null","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["null","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["null","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["null","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["null","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["null","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["null","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["null",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["null",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["null",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["null",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-object-closed-array-any-boolean ]---------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["boolean",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["boolean","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["boolean","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["boolean","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["boolean","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["boolean","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["boolean","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["boolean","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["boolean",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["boolean",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["boolean",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["boolean",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-object-closed-array-any-number ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["number",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["number","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["number","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["number","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["number","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["number","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["number","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["number","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["number",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["number",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["number",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["number",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-object-closed-array-any-string ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["string",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["string","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["string","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["string","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["string","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["string","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["string","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["string","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["string",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["string",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["string",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["string",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-object-closed-array-any-object ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["object",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["object","type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:76)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["object","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["object","null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:100)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["object","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["object","boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:100)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["object","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["object","number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:100)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["object","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["object","string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:100)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["object","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["object","object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:76)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["object","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["object","array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:100)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["object","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:76)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:100)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:100)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:100)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-object-closed-array-any-array ]-----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["array",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["array","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["array","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["array","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["array","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["array","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["array","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["array","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-object-closed-array-object ]--------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:76)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:100)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:100)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:100)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:100)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:76)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:100)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:76)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:100)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:100)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:100)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-object-closed-array-object2 ]-------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:100)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:100)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:100)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:100)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:100)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:100)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:100)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:100)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:100)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:100)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:100)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[]}},{"ty
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-object-closed-array-array ]---------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"array","args":"type"},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-object-closed-array-array2 ]--------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"array","args":["number","object"]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[]}},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": []
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": []
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-object2-closed-array-any-type ]-----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["type",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["type","type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:138)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["type","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["type","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["type","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["type","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["type","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["type","object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:138)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["type","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["type","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:138)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-object2-closed-array-any-null ]-----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["null",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["null","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["null","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["null","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["null","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["null","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["null","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["null","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["null",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["null",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["null",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["null",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-object2-closed-array-any-boolean ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["boolean",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["boolean","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["boolean","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["boolean","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["boolean","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["boolean","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["boolean","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["boolean","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["boolean",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["boolean",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["boolean",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["boolean",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-object2-closed-array-any-number ]---------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["number",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["number","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["number","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["number","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["number","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["number","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["number","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["number","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["number",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["number",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["number",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["number",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-object2-closed-array-any-string ]---------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["string",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["string","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["string","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["string","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["string","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["string","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["string","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["string","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["string",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["string",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["string",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["string",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-object2-closed-array-any-object ]---------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["object",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["object","type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:138)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["object","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["object","null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:162)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["object","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["object","boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:162)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["object","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["object","number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:162)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["object","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["object","string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:162)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["object","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["object","object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:138)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["object","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["object","array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:162)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["object","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:162)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:138)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:162)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:162)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-object2-closed-array-any-array ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["array",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["array","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["array","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["array","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["array","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["array","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["array","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["array","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-object2-closed-array-object ]-------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:162)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:162)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:162)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:162)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:162)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:162)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:162)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:162)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:162)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:162)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:162)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-object2-closed-array-object2 ]------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:138)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:162)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:162)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:162)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:162)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:138)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:162)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:162)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:138)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:162)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:162)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"object","args":[{"name":
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-object2-closed-array-array ]--------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"array","args":"type"},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-object2-closed-array-array2 ]-------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"array","args":["number","object"]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "object",
                "args": [
                    {
                        "name": "bar",
                        "type": "boolean"
                    },
                    {
                        "name": "baz",
                        "type": "number"
                    }
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-array-closed-array-any-type ]-------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["type",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["type","type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:79)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["type","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["type","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["type","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["type","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["type","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["type","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["type","array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:79)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["type","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:79)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-array-closed-array-any-null ]-------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["null",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["null","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["null","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["null","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["null","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["null","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["null","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["null","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["null",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["null",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["null",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["null",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-array-closed-array-any-boolean ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["boolean",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["boolean","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["boolean","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["boolean","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["boolean","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["boolean","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["boolean","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["boolean","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["boolean",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["boolean",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["boolean",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["boolean",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-array-closed-array-any-number ]-----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["number",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["number","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["number","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["number","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["number","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["number","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["number","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["number","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["number",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["number",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["number",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["number",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-array-closed-array-any-string ]-----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["string",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["string","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["string","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["string","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["string","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["string","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["string","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["string","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["string",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["string",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["string",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["string",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-array-closed-array-any-object ]-----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["object",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["object","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["object","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["object","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["object","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["object","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["object","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["object","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-array-closed-array-any-array ]------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["array",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["array","type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:79)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["array","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["array","null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:103)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["array","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["array","boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:103)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["array","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["array","number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:103)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["array","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["array","string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:103)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["array","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["array","object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:103)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["array","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["array","array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:79)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["array","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:103)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:103)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:79)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:103)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-array-closed-array-object ]---------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"object","args":[]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-array-closed-array-object2 ]--------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-array-closed-array-array ]----------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":"type"},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:79)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:103)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:103)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:103)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:103)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:103)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:79)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:103)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:103)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:79)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:103)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-array-closed-array-array2 ]---------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":["number","object"]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:103)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:103)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:103)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:103)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:103)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:103)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:103)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:103)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:103)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:103)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:103)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":"type"}},{
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": "type"
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": "type"
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":"type"}},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-array2-closed-array-any-type ]------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["type",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["type","type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:92)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["type","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["type","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["type","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["type","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["type","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["type","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["type","array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:92)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["type","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:92)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "type",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-array2-closed-array-any-null ]------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["null",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["null","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["null","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["null","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["null","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["null","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["null","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["null","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["null",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["null",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["null",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["null",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "null",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-array2-closed-array-any-boolean ]---------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["boolean",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["boolean","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["boolean","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["boolean","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["boolean","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["boolean","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["boolean","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["boolean","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["boolean",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["boolean",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["boolean",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["boolean",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "boolean",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-array2-closed-array-any-number ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["number",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["number","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["number","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["number","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["number","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["number","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["number","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["number","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["number",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["number",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["number",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["number",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "number",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-array2-closed-array-any-string ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["string",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["string","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["string","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["string","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["string","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["string","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["string","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["string","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["string",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["string",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["string",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["string",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "string",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-array2-closed-array-any-object ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["object",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["object","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["object","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["object","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["object","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["object","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["object","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["object","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "object",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-array2-closed-array-any-array ]-----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["array",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["array","type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:92)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["array","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["array","null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:116)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["array","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["array","boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:116)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["array","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["array","number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:116)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["array","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["array","string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:116)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["array","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["array","object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:116)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["array","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["array","array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:92)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["array","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:116)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:116)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:116)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:92)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                "array",
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-array2-closed-array-object ]--------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"object","args":[]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": []
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-array2-closed-array-object2 ]-------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-open-array-array2-closed-array-array ]---------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":"type"},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:116)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:116)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:116)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:116)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:116)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:116)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:116)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:116)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:116)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:116)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:116)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": "type"
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
$

--[ list-open-array-array2-closed-array-array2 ]--------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":["number","object"]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:92)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "type"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:116)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "null"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:116)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "boolean"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:116)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "number"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:116)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "string"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:116)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "object"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:92)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                "array"
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:116)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": []
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:116)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "bar",
                                            "type": "boolean"
                                        },
                                        {
                                            "name": "baz",
                                            "type": "number"
                                        }
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:116)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": "type"
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:92)
json: error: <stdin>:1:47: ,"args":[{"type":"array","args":{"type":"array","args":["number",
json: error: <stdin>:1:47:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": {
                "type": "array",
                "args": [
                    "number",
                    "object"
                ]
            }
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        }
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "type": "array",
                            "args": [
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                },
                                {
                                    "type": "array",
                                    "args": [
                                        "number",
                                        "object"
                                    ]
                                }
                            ]
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":{"type":"array","args":["number","object"]}},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
$

#
# # end of meta meta command
#

#
# # meta meta command:
# $ o=0; a=0; A=('"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'); L=''; for t in "${A[@]}"; do L+="${L:+ }'$t'"; done; for t in "${A[@]}"; do case "$t" in \"*) n="any-${t:1:$((${#t} - 2))}";; \{\"type\":\"object\"*) n="$((++ o))"; test "$n" -eq 1 && n=""; n="object$n";; \{\"type\":\"array\"*)  n="$((++ a))"; test "$n" -eq 1 && n=""; n="array$n";; *) error "unexpected t='$t'";; esac; o2=0; a2=0; for t2 in "${A[@]}"; do case "$t2" in \"*) n2="any-${t2:1:$((${#t2} - 2))}";; \{\"type\":\"object\"*) n2="$((++ o2))"; test "$n2" -eq 1 && n2=""; n2="object$n2";; \{\"type\":\"array\"*)  n2="$((++ a2))"; test "$n2" -eq 1 && n2=""; n2="array$n2";; *) error "unexpected t2='$t2'";; esac; n3="--[ list-closed-array-$n-closed-array-$n2 ]"; printf -v N "%$((80 - ${#n3}))s"; echo -e "$n3$(sed 's/ /-/g' <<< "$N")\n"; T='{"type":"list","args":[{"type":"array","args":['"$t"']},{"type":"array","args":['"$t2"','\''"$t3"'\'']}]}'; C="for t3 in $L; do T='$T'; c=\"json <<< '\$T'\"; echo \"$ \$c\"; eval \"\$c\"; test \$? -ne 0 && echo \"command failed: \$c\"; done"; echo -e "#\n# # meta command:\n# $ $C\n#"; eval "$C 2>&1"; echo -e "$\n"; done; done
#

--[ list-closed-array-any-type-closed-array-any-type ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["type",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["type","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["type","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["type","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["type","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["type","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["type","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["type","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-any-type-closed-array-any-null ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null","type"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null","null"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null","boolean"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null","number"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null","string"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null","object"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null","array"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-any-type-closed-array-any-boolean ]-----------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean","type"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean","null"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean","boolean"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean","number"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean","string"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean","object"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean","array"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-any-type-closed-array-any-number ]------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number","type"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number","null"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number","boolean"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number","number"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number","string"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number","object"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number","array"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-any-type-closed-array-any-string ]------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string","type"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string","null"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string","boolean"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string","number"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string","string"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string","object"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string","array"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-any-type-closed-array-any-object ]------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object","type"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object","null"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object","boolean"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object","number"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object","string"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object","object"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object","array"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-any-type-closed-array-any-array ]-------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array","type"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array","null"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array","boolean"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array","number"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array","string"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array","object"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array","array"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
json: error: <stdin>:1:48: "args":[{"type":"array","args":["type"]},{"type":"array","args":[
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-any-type-closed-array-object ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"object","args":[]},"type
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"object","args":[]},"null
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"object","args":[]},"bool
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"object","args":[]},"numb
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"object","args":[]},"stri
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"object","args":[]},"obje
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"object","args":[]},"arra
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"object","args":[]},{"typ
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"object","args":[]},{"typ
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"object","args":[]},{"typ
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"object","args":[]},{"typ
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-any-type-closed-array-object2 ]---------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-any-type-closed-array-array ]-----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":"type"},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"array","args":"type"},"t
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"array","args":"type"},"n
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"array","args":"type"},"b
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"array","args":"type"},"n
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"array","args":"type"},"s
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"array","args":"type"},"o
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"array","args":"type"},"a
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"array","args":"type"},{"
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"array","args":"type"},{"
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"array","args":"type"},{"
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"array","args":"type"},{"
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-any-type-closed-array-array2 ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":["number","object"]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: type"]},{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "type"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "type"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-any-null-closed-array-any-type ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type","type"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: null"]},{"type":"array","args":["type","type"]}]}
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type","null"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: null"]},{"type":"array","args":["type","null"]}]}
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type","boolean"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: null"]},{"type":"array","args":["type","boolean"]}]}
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type","number"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: null"]},{"type":"array","args":["type","number"]}]}
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type","string"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: null"]},{"type":"array","args":["type","string"]}]}
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type","object"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: null"]},{"type":"array","args":["type","object"]}]}
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type","array"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: null"]},{"type":"array","args":["type","array"]}]}
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: null"]},{"type":"array","args":["type",{"type":"object","args":[]
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: null"]},{"type":"array","args":["type",{"type":"object","args":[{
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: null"]},{"type":"array","args":["type",{"type":"array","args":"ty
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:81: null"]},{"type":"array","args":["type",{"type":"array","args":["n
json: error: <stdin>:1:81:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-any-null-closed-array-any-null ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["null",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["null","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["null","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["null","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["null","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["null","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["null","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["null","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["null",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["null",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["null",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["null",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-any-null-closed-array-any-boolean ]-----------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["boolean",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["boolean","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["boolean","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["boolean","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["boolean","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["boolean","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["boolean","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["boolean","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["boolean",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["boolean",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["boolean",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["boolean",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-null-closed-array-any-number ]------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["number",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["number","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["number","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["number","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["number","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["number","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["number","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["number","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["number",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["number",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["number",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["number",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-null-closed-array-any-string ]------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["string",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["string","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["string","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["string","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["string","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["string","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["string","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["string","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["string",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["string",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["string",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["string",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-null-closed-array-any-object ]------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["object",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["object","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["object","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["object","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["object","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["object","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["object","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["object","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-null-closed-array-any-array ]-------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["array",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["array","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["array","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["array","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["array","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["array","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["array","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["array","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-null-closed-array-object ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"object","args":[]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-null-closed-array-object2 ]---------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-null-closed-array-array ]-----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"array","args":"type"},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-null-closed-array-array2 ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"array","args":["number","object"]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "null"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "null"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-boolean-closed-array-any-type ]-----------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type","type"]}]}'
json: error: <stdin>:1:84: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:84: lean"]},{"type":"array","args":["type","type"]}]}
json: error: <stdin>:1:84:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type","null"]}]}'
json: error: <stdin>:1:84: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:84: lean"]},{"type":"array","args":["type","null"]}]}
json: error: <stdin>:1:84:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type","boolean"]}]}'
json: error: <stdin>:1:84: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:84: lean"]},{"type":"array","args":["type","boolean"]}]}
json: error: <stdin>:1:84:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type","number"]}]}'
json: error: <stdin>:1:84: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:84: lean"]},{"type":"array","args":["type","number"]}]}
json: error: <stdin>:1:84:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type","string"]}]}'
json: error: <stdin>:1:84: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:84: lean"]},{"type":"array","args":["type","string"]}]}
json: error: <stdin>:1:84:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type","object"]}]}'
json: error: <stdin>:1:84: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:84: lean"]},{"type":"array","args":["type","object"]}]}
json: error: <stdin>:1:84:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type","array"]}]}'
json: error: <stdin>:1:84: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:84: lean"]},{"type":"array","args":["type","array"]}]}
json: error: <stdin>:1:84:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:84: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:84: lean"]},{"type":"array","args":["type",{"type":"object","args":[]
json: error: <stdin>:1:84:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:84: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:84: lean"]},{"type":"array","args":["type",{"type":"object","args":[{
json: error: <stdin>:1:84:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:84: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:84: lean"]},{"type":"array","args":["type",{"type":"array","args":"ty
json: error: <stdin>:1:84:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:84: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:84: lean"]},{"type":"array","args":["type",{"type":"array","args":["n
json: error: <stdin>:1:84:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-any-boolean-closed-array-any-null ]-----------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["null",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["null","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["null","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["null","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["null","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["null","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["null","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["null","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["null",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["null",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["null",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["null",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-any-boolean-closed-array-any-boolean ]--------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["boolean",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["boolean","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["boolean","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["boolean","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["boolean","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["boolean","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["boolean","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["boolean","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["boolean",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["boolean",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["boolean",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["boolean",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-any-boolean-closed-array-any-number ]---------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["number",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["number","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["number","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["number","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["number","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["number","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["number","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["number","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["number",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["number",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["number",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["number",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-boolean-closed-array-any-string ]---------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["string",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["string","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["string","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["string","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["string","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["string","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["string","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["string","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["string",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["string",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["string",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["string",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-boolean-closed-array-any-object ]---------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["object",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["object","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["object","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["object","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["object","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["object","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["object","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["object","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-boolean-closed-array-any-array ]----------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["array",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["array","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["array","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["array","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["array","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["array","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["array","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["array","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-boolean-closed-array-object ]-------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"object","args":[]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-boolean-closed-array-object2 ]------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-boolean-closed-array-array ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"array","args":"type"},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-boolean-closed-array-array2 ]-------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"array","args":["number","object"]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "boolean"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "boolean"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-number-closed-array-any-type ]------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type","type"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: mber"]},{"type":"array","args":["type","type"]}]}
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type","null"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: mber"]},{"type":"array","args":["type","null"]}]}
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type","boolean"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: mber"]},{"type":"array","args":["type","boolean"]}]}
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type","number"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: mber"]},{"type":"array","args":["type","number"]}]}
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type","string"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: mber"]},{"type":"array","args":["type","string"]}]}
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type","object"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: mber"]},{"type":"array","args":["type","object"]}]}
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type","array"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: mber"]},{"type":"array","args":["type","array"]}]}
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: mber"]},{"type":"array","args":["type",{"type":"object","args":[]
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: mber"]},{"type":"array","args":["type",{"type":"object","args":[{
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: mber"]},{"type":"array","args":["type",{"type":"array","args":"ty
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: mber"]},{"type":"array","args":["type",{"type":"array","args":["n
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-any-number-closed-array-any-null ]------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["null",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["null","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["null","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["null","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["null","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["null","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["null","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["null","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["null",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["null",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["null",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["null",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-any-number-closed-array-any-boolean ]---------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["boolean",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["boolean","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["boolean","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["boolean","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["boolean","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["boolean","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["boolean","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["boolean","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["boolean",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["boolean",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["boolean",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["boolean",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-any-number-closed-array-any-number ]----------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["number",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["number","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["number","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["number","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["number","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["number","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["number","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["number","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["number",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["number",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["number",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["number",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-any-number-closed-array-any-string ]----------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["string",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["string","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["string","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["string","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["string","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["string","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["string","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["string","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["string",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["string",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["string",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["string",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-number-closed-array-any-object ]----------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["object",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["object","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["object","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["object","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["object","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["object","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["object","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["object","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-number-closed-array-any-array ]-----------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["array",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["array","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["array","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["array","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["array","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["array","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["array","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["array","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-number-closed-array-object ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"object","args":[]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-number-closed-array-object2 ]-------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-number-closed-array-array ]---------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"array","args":"type"},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-number-closed-array-array2 ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"array","args":["number","object"]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "number"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "number"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-string-closed-array-any-type ]------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type","type"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ring"]},{"type":"array","args":["type","type"]}]}
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type","null"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ring"]},{"type":"array","args":["type","null"]}]}
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type","boolean"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ring"]},{"type":"array","args":["type","boolean"]}]}
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type","number"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ring"]},{"type":"array","args":["type","number"]}]}
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type","string"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ring"]},{"type":"array","args":["type","string"]}]}
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type","object"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ring"]},{"type":"array","args":["type","object"]}]}
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type","array"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ring"]},{"type":"array","args":["type","array"]}]}
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ring"]},{"type":"array","args":["type",{"type":"object","args":[]
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ring"]},{"type":"array","args":["type",{"type":"object","args":[{
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ring"]},{"type":"array","args":["type",{"type":"array","args":"ty
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ring"]},{"type":"array","args":["type",{"type":"array","args":["n
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-any-string-closed-array-any-null ]------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["null",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["null","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["null","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["null","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["null","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["null","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["null","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["null","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["null",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["null",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["null",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["null",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-any-string-closed-array-any-boolean ]---------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["boolean",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["boolean","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["boolean","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["boolean","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["boolean","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["boolean","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["boolean","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["boolean","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["boolean",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["boolean",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["boolean",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["boolean",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-any-string-closed-array-any-number ]----------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["number",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["number","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["number","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["number","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["number","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["number","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["number","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["number","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["number",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["number",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["number",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["number",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-any-string-closed-array-any-string ]----------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["string",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["string","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["string","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["string","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["string","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["string","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["string","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["string","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["string",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["string",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["string",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["string",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-any-string-closed-array-any-object ]----------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["object",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["object","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["object","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["object","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["object","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["object","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["object","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["object","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-string-closed-array-any-array ]-----------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["array",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["array","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["array","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["array","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["array","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["array","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["array","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["array","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-string-closed-array-object ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"object","args":[]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-string-closed-array-object2 ]-------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-string-closed-array-array ]---------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"array","args":"type"},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-string-closed-array-array2 ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"array","args":["number","object"]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "string"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "string"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-object-closed-array-any-type ]------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type","type"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":["type","type"]}]}
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type","null"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":["type","null"]}]}
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type","boolean"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":["type","boolean"]}]}
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type","number"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":["type","number"]}]}
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type","string"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":["type","string"]}]}
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type","object"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":["type","object"]}]}
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type","array"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":["type","array"]}]}
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":["type",{"type":"object","args":[]
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":["type",{"type":"object","args":[{
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":["type",{"type":"array","args":"ty
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":["type",{"type":"array","args":["n
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-any-object-closed-array-any-null ]------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["null",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["null","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["null","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["null","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["null","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["null","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["null","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["null","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["null",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["null",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["null",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["null",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-any-object-closed-array-any-boolean ]---------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["boolean",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["boolean","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["boolean","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["boolean","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["boolean","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["boolean","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["boolean","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["boolean","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["boolean",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["boolean",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["boolean",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["boolean",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-any-object-closed-array-any-number ]----------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["number",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["number","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["number","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["number","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["number","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["number","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["number","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["number","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["number",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["number",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["number",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["number",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-any-object-closed-array-any-string ]----------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["string",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["string","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["string","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["string","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["string","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["string","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["string","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["string","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["string",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["string",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["string",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["string",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-any-object-closed-array-any-object ]----------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["object",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["object","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["object","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["object","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["object","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["object","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["object","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["object","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-any-object-closed-array-any-array ]-----------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["array",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["array","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["array","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["array","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["array","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["array","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["array","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["array","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-object-closed-array-object ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":[{"type":"object","args":[]},"type
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":[{"type":"object","args":[]},"null
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":[{"type":"object","args":[]},"bool
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":[{"type":"object","args":[]},"numb
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":[{"type":"object","args":[]},"stri
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":[{"type":"object","args":[]},"obje
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":[{"type":"object","args":[]},"arra
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":[{"type":"object","args":[]},{"typ
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":[{"type":"object","args":[]},{"typ
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":[{"type":"object","args":[]},{"typ
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":[{"type":"object","args":[]},{"typ
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-any-object-closed-array-object2 ]-------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:83: ject"]},{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:83:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-any-object-closed-array-array ]---------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"array","args":"type"},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-object-closed-array-array2 ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"array","args":["number","object"]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "object"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "object"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-array-closed-array-any-type ]-------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type","type"]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":["type","type"]}]}
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type","null"]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":["type","null"]}]}
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type","boolean"]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":["type","boolean"]}]}
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type","number"]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":["type","number"]}]}
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type","string"]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":["type","string"]}]}
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type","object"]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":["type","object"]}]}
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type","array"]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":["type","array"]}]}
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":["type",{"type":"object","args":[]
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":["type",{"type":"object","args":[{
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":["type",{"type":"array","args":"ty
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":["type",{"type":"array","args":["n
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-any-array-closed-array-any-null ]-------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["null",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["null","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["null","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["null","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["null","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["null","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["null","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["null","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["null",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["null",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["null",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["null",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-any-array-closed-array-any-boolean ]----------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["boolean",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["boolean","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["boolean","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["boolean","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["boolean","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["boolean","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["boolean","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["boolean","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["boolean",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["boolean",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["boolean",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["boolean",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-any-array-closed-array-any-number ]-----------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["number",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["number","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["number","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["number","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["number","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["number","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["number","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["number","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["number",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["number",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["number",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["number",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-any-array-closed-array-any-string ]-----------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["string",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["string","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["string","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["string","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["string","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["string","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["string","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["string","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["string",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["string",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["string",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["string",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-any-array-closed-array-any-object ]-----------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["object",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["object","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["object","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["object","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["object","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["object","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["object","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["object","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-any-array-closed-array-any-array ]------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["array",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["array","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["array","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["array","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["array","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["array","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["array","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["array","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-any-array-closed-array-object ]---------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"object","args":[]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-array-closed-array-object2 ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-any-array-closed-array-array ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":"type"},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":[{"type":"array","args":"type"},"t
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":[{"type":"array","args":"type"},"n
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":[{"type":"array","args":"type"},"b
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":[{"type":"array","args":"type"},"n
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":[{"type":"array","args":"type"},"s
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":[{"type":"array","args":"type"},"o
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":[{"type":"array","args":"type"},"a
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":[{"type":"array","args":"type"},{"
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":[{"type":"array","args":"type"},{"
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":[{"type":"array","args":"type"},{"
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":[{"type":"array","args":"type"},{"
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-any-array-closed-array-array2 ]---------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":["number","object"]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
json: error: <stdin>:1:82: rray"]},{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:82:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                "array"
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            "array"
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-object-closed-array-any-type ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["type",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["type","type"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["type","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["type","null"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["type","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["type","boolean"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["type","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["type","number"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["type","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["type","string"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["type","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["type","object"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["type","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["type","array"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["type","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-object-closed-array-any-null ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["null",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["null","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["null","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["null","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["null","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["null","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["null","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["null","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["null",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["null",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["null",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["null",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-object-closed-array-any-boolean ]-------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["boolean",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["boolean","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["boolean","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["boolean","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["boolean","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["boolean","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["boolean","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["boolean","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["boolean",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["boolean",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["boolean",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["boolean",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-object-closed-array-any-number ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["number",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["number","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["number","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["number","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["number","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["number","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["number","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["number","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["number",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["number",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["number",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["number",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-object-closed-array-any-string ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["string",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["string","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["string","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["string","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["string","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["string","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["string","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["string","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["string",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["string",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["string",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["string",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-object-closed-array-any-object ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["object",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["object","type"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["object","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["object","null"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["object","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["object","boolean"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["object","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["object","number"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["object","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["object","string"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["object","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["object","object"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["object","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["object","array"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["object","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-object-closed-array-any-array ]---------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["array",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["array","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["array","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["array","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["array","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["array","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["array","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["array","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-object-closed-array-object ]------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-object-closed-array-object2 ]-----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:102)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[]}]},{"t
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-object-closed-array-array ]-------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"array","args":"type"},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-object-closed-array-array2 ]------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": []
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": []
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-object2-closed-array-any-type ]---------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["type",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["type","type"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:164)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["type","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["type","null"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:164)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["type","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["type","boolean"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:164)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["type","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["type","number"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:164)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["type","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["type","string"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:164)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["type","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["type","object"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:164)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["type","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["type","array"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:164)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["type","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:164)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:164)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:164)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:164)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-object2-closed-array-any-null ]---------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["null",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["null","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["null","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["null","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["null","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["null","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["null","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["null","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["null",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["null",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["null",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["null",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-object2-closed-array-any-boolean ]------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["boolean",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["boolean","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["boolean","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["boolean","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["boolean","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["boolean","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["boolean","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["boolean","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["boolean",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["boolean",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["boolean",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["boolean",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-object2-closed-array-any-number ]-------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["number",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["number","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["number","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["number","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["number","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["number","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["number","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["number","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["number",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["number",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["number",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["number",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-object2-closed-array-any-string ]-------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["string",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["string","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["string","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["string","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["string","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["string","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["string","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["string","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["string",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["string",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["string",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["string",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-object2-closed-array-any-object ]-------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["object",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["object","type"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:164)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["object","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["object","null"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:164)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["object","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["object","boolean"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:164)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["object","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["object","number"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:164)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["object","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["object","string"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:164)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["object","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["object","object"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:164)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["object","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["object","array"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:164)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["object","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:164)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:164)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:164)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:164)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"object","args":[{"name":
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-object2-closed-array-any-array ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["array",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["array","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["array","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["array","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["array","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["array","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["array","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["array","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-object2-closed-array-object ]-----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
json: error: <stdin>:1:164: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:48)
json: error: <stdin>:1:164: r"}]}]},{"type":"array","args":[{"type":"object","args":[]},"type
json: error: <stdin>:1:164:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
json: error: <stdin>:1:164: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:48)
json: error: <stdin>:1:164: r"}]}]},{"type":"array","args":[{"type":"object","args":[]},"null
json: error: <stdin>:1:164:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
json: error: <stdin>:1:164: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:48)
json: error: <stdin>:1:164: r"}]}]},{"type":"array","args":[{"type":"object","args":[]},"bool
json: error: <stdin>:1:164:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
json: error: <stdin>:1:164: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:48)
json: error: <stdin>:1:164: r"}]}]},{"type":"array","args":[{"type":"object","args":[]},"numb
json: error: <stdin>:1:164:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
json: error: <stdin>:1:164: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:48)
json: error: <stdin>:1:164: r"}]}]},{"type":"array","args":[{"type":"object","args":[]},"stri
json: error: <stdin>:1:164:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
json: error: <stdin>:1:164: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:48)
json: error: <stdin>:1:164: r"}]}]},{"type":"array","args":[{"type":"object","args":[]},"obje
json: error: <stdin>:1:164:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
json: error: <stdin>:1:164: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:48)
json: error: <stdin>:1:164: r"}]}]},{"type":"array","args":[{"type":"object","args":[]},"arra
json: error: <stdin>:1:164:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:164: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:48)
json: error: <stdin>:1:164: r"}]}]},{"type":"array","args":[{"type":"object","args":[]},{"typ
json: error: <stdin>:1:164:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:164: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:48)
json: error: <stdin>:1:164: r"}]}]},{"type":"array","args":[{"type":"object","args":[]},{"typ
json: error: <stdin>:1:164:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:164: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:48)
json: error: <stdin>:1:164: r"}]}]},{"type":"array","args":[{"type":"object","args":[]},{"typ
json: error: <stdin>:1:164:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:164: attribute error: invalid "list" type object: sort of array of object type not yet supported (the other inner object is at 1:48)
json: error: <stdin>:1:164: r"}]}]},{"type":"array","args":[{"type":"object","args":[]},{"typ
json: error: <stdin>:1:164:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-object2-closed-array-object2 ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-object2-closed-array-array ]------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"array","args":"type"},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-object2-closed-array-array2 ]-----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "object",
                                "args": [
                                    {
                                        "name": "bar",
                                        "type": "boolean"
                                    },
                                    {
                                        "name": "baz",
                                        "type": "number"
                                    }
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
$

--[ list-closed-array-array-closed-array-any-type ]-----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["type",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["type","type"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["type","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["type","null"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["type","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["type","boolean"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["type","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["type","number"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["type","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["type","string"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["type","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["type","object"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["type","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["type","array"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["type","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-array-closed-array-any-null ]-----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["null",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["null","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["null","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["null","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["null","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["null","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["null","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["null","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["null",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["null",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["null",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["null",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-array-closed-array-any-boolean ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["boolean",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["boolean","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["boolean","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["boolean","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["boolean","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["boolean","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["boolean","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["boolean","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["boolean",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["boolean",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["boolean",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["boolean",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-array-closed-array-any-number ]---------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["number",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["number","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["number","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["number","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["number","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["number","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["number","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["number","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["number",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["number",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["number",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["number",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-array-closed-array-any-string ]---------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["string",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["string","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["string","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["string","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["string","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["string","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["string","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["string","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["string",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["string",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["string",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["string",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-array-closed-array-any-object ]---------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["object",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["object","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["object","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["object","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["object","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["object","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["object","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["object","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-array-closed-array-any-array ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["array",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["array","type"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["array","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["array","null"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["array","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["array","boolean"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["array","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["array","number"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["array","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["array","string"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["array","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["array","object"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["array","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["array","array"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["array","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-array-closed-array-object ]-------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"object","args":[]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-array-closed-array-object2 ]------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-array-closed-array-array ]--------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":"type"},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-array-closed-array-array2 ]-------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":["number","object"]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:105)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":"type"}]},
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": "type"
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "type": "array",
                        "args": [
                            "number",
                            "object"
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                }
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":"type"}]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-array2-closed-array-any-type ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["type",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["type","type"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:118)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["type","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["type","null"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:118)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["type","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["type","boolean"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:118)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["type","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["type","number"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:118)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["type","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["type","string"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:118)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["type","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["type","object"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:118)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["type","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["type","array"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:118)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["type","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:118)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["type",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:118)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["type",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:118)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["type",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:118)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "type",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "type",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "type",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["type",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-array2-closed-array-any-null ]----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["null",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["null","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["null","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["null","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["null","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["null","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["null","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["null","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["null",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["null",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["null",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["null",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "null",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "null",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "null",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-array2-closed-array-any-boolean ]-------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["boolean",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["boolean","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["boolean","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["boolean","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["boolean","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["boolean","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["boolean","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["boolean","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["boolean",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["boolean",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["boolean",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["boolean",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "boolean",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "boolean",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "boolean",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-array2-closed-array-any-number ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["number",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["number","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["number","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["number","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["number","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["number","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["number","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["number","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["number",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["number",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["number",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["number",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "number",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "number",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "number",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-array2-closed-array-any-string ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["string",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["string","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["string","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["string","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["string","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["string","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["string","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["string","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["string",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["string",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["string",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["string",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "string",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "string",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "string",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-array2-closed-array-any-object ]--------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["object",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["object","type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["object","null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["object","boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["object","number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["object","string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["object","object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["object","array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["object",{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["object",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["object",{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["object",{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "object",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "object",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "object",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-array2-closed-array-any-array ]---------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["array",'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["array","type"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:118)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["array","type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["array","null"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:118)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["array","null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["array","boolean"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:118)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["array","boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["array","number"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:118)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["array","number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["array","string"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:118)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["array","string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["array","object"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:118)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["array","object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["array","array"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:118)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["array","array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:118)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["array",{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:118)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["array",{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:118)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["array",{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:118)
json: error: <stdin>:1:48: "args":[{"type":"array","args":[{"type":"array","args":["number",
json: error: <stdin>:1:48:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                "array",
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": "array",
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    "array",
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":["array",{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-array2-closed-array-object ]------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"object","args":[]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"object","args":[]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"object","args":[]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"object","args":[]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"object","args":[]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"object","args":[]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"object","args":[]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"object","args":[]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"object","args":[]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": []
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": []
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": []
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-array2-closed-array-object2 ]-----------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "object",
                        "args": [
                            {
                                "name": "bar",
                                "type": "boolean"
                            },
                            {
                                "name": "baz",
                                "type": "number"
                            }
                        ]
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
$

--[ list-closed-array-array2-closed-array-array ]-------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":"type"},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
json: error: <stdin>:1:118: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:48)
json: error: <stdin>:1:118: ct"]}]},{"type":"array","args":[{"type":"array","args":"type"},"t
json: error: <stdin>:1:118:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":"type"},"type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
json: error: <stdin>:1:118: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:48)
json: error: <stdin>:1:118: ct"]}]},{"type":"array","args":[{"type":"array","args":"type"},"n
json: error: <stdin>:1:118:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":"type"},"null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
json: error: <stdin>:1:118: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:48)
json: error: <stdin>:1:118: ct"]}]},{"type":"array","args":[{"type":"array","args":"type"},"b
json: error: <stdin>:1:118:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":"type"},"boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
json: error: <stdin>:1:118: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:48)
json: error: <stdin>:1:118: ct"]}]},{"type":"array","args":[{"type":"array","args":"type"},"n
json: error: <stdin>:1:118:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":"type"},"number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
json: error: <stdin>:1:118: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:48)
json: error: <stdin>:1:118: ct"]}]},{"type":"array","args":[{"type":"array","args":"type"},"s
json: error: <stdin>:1:118:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":"type"},"string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
json: error: <stdin>:1:118: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:48)
json: error: <stdin>:1:118: ct"]}]},{"type":"array","args":[{"type":"array","args":"type"},"o
json: error: <stdin>:1:118:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":"type"},"object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
json: error: <stdin>:1:118: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:48)
json: error: <stdin>:1:118: ct"]}]},{"type":"array","args":[{"type":"array","args":"type"},"a
json: error: <stdin>:1:118:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":"type"},"array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
json: error: <stdin>:1:118: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:48)
json: error: <stdin>:1:118: ct"]}]},{"type":"array","args":[{"type":"array","args":"type"},{"
json: error: <stdin>:1:118:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
json: error: <stdin>:1:118: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:48)
json: error: <stdin>:1:118: ct"]}]},{"type":"array","args":[{"type":"array","args":"type"},{"
json: error: <stdin>:1:118:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
json: error: <stdin>:1:118: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:48)
json: error: <stdin>:1:118: ct"]}]},{"type":"array","args":[{"type":"array","args":"type"},{"
json: error: <stdin>:1:118:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
json: error: <stdin>:1:118: attribute error: invalid "list" type object: sort of array of array type not yet supported (the other inner array is at 1:48)
json: error: <stdin>:1:118: ct"]}]},{"type":"array","args":[{"type":"array","args":"type"},{"
json: error: <stdin>:1:118:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": "type"
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": {
                    "sym": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "eq": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": "type"
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":["number","object"]}]}]}'
$

--[ list-closed-array-array2-closed-array-array2 ]------------------------------

#
# # meta command:
# $ for t3 in '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"' '{"type":"object","args":[]}' '{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}' '{"type":"array","args":"type"}' '{"type":"array","args":["number","object"]}'; do T='{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},'"$t3"']}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"type"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "type"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "type",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "type"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"null"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "null"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "null",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "null"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"boolean"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "boolean"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "boolean",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "boolean"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"number"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "number"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "number",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "number"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"string"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "string"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "string",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "string"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"object"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "object"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "object",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "object"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},"array"]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "array"
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": "array",
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    "array"
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": []
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "object",
                            "args": []
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": []
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"object","args":[{"name":"bar","type":"boolean"},{"name":"baz","type":"number"}]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "object",
                    "args": [
                        {
                            "name": "bar",
                            "type": "boolean"
                        },
                        {
                            "name": "baz",
                            "type": "number"
                        }
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "bar",
                                    "type": "boolean"
                                },
                                {
                                    "name": "baz",
                                    "type": "number"
                                }
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "bar",
                                                "type": "boolean"
                                            },
                                            {
                                                "name": "baz",
                                                "type": "number"
                                            }
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":"type"}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": "type"
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "array",
                            "args": "type"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": "type"
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$ json <<< '{"type":"list","args":[{"type":"array","args":[{"type":"array","args":["number","object"]}]},{"type":"array","args":[{"type":"array","args":["number","object"]},{"type":"array","args":["number","object"]}]}]}'
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        },
        {
            "type": "array",
            "args": [
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": null,
            "closed": {
                "sym": {
                    "type": "array",
                    "args": [
                        "number",
                        "object"
                    ]
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": [
                            {
                                "type": "array",
                                "args": [
                                    "number",
                                    "object"
                                ]
                            }
                        ]
                    },
                    "lo": null,
                    "hi": {
                        "sym": {
                            "type": "array",
                            "args": [
                                "number",
                                "object"
                            ]
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "type": "array",
                                "args": [
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    },
                                    {
                                        "type": "array",
                                        "args": [
                                            "number",
                                            "object"
                                        ]
                                    }
                                ]
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                },
                "hi": null
            }
        }
    }
}
$

#
# # end of meta meta command
#

--[ list-closed-array-empty-open-array-any ]------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do T='{"type":"list","args":[{"type":"array","args":[]},{"type":"array","args":"'"$t"'"}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test "$?" -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":[]},{"type":"array","args":"type"}]}'
json: error: <stdin>:1:74: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:24)
json: error: <stdin>:1:74: rgs":[]},{"type":"array","args":"type"}]}
json: error: <stdin>:1:74:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": []
        },
        {
            "type": "array",
            "args": "type"
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "type",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "type"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "val": {
                    "type": "array",
                    "args": []
                },
                "lo": null,
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[]},{"type":"array","args":"type"}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[]},{"type":"array","args":"null"}]}'
json: error: <stdin>:1:74: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:24)
json: error: <stdin>:1:74: rgs":[]},{"type":"array","args":"null"}]}
json: error: <stdin>:1:74:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": []
        },
        {
            "type": "array",
            "args": "null"
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "null",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "val": {
                    "type": "array",
                    "args": []
                },
                "lo": null,
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[]},{"type":"array","args":"null"}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[]},{"type":"array","args":"boolean"}]}'
json: error: <stdin>:1:74: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:24)
json: error: <stdin>:1:74: rgs":[]},{"type":"array","args":"boolean"}]}
json: error: <stdin>:1:74:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": []
        },
        {
            "type": "array",
            "args": "boolean"
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "boolean",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "boolean"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "val": {
                    "type": "array",
                    "args": []
                },
                "lo": null,
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[]},{"type":"array","args":"boolean"}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[]},{"type":"array","args":"number"}]}'
json: error: <stdin>:1:74: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:24)
json: error: <stdin>:1:74: rgs":[]},{"type":"array","args":"number"}]}
json: error: <stdin>:1:74:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": []
        },
        {
            "type": "array",
            "args": "number"
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "number",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "number"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "val": {
                    "type": "array",
                    "args": []
                },
                "lo": null,
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[]},{"type":"array","args":"number"}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[]},{"type":"array","args":"string"}]}'
json: error: <stdin>:1:74: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:24)
json: error: <stdin>:1:74: rgs":[]},{"type":"array","args":"string"}]}
json: error: <stdin>:1:74:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": []
        },
        {
            "type": "array",
            "args": "string"
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "string",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "string"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "val": {
                    "type": "array",
                    "args": []
                },
                "lo": null,
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[]},{"type":"array","args":"string"}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[]},{"type":"array","args":"object"}]}'
json: error: <stdin>:1:74: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:24)
json: error: <stdin>:1:74: rgs":[]},{"type":"array","args":"object"}]}
json: error: <stdin>:1:74:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": []
        },
        {
            "type": "array",
            "args": "object"
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "object",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "object"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "val": {
                    "type": "array",
                    "args": []
                },
                "lo": null,
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[]},{"type":"array","args":"object"}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":[]},{"type":"array","args":"array"}]}'
json: error: <stdin>:1:74: attribute error: invalid "list" type object: array ambiguity (the other defined at 1:24)
json: error: <stdin>:1:74: rgs":[]},{"type":"array","args":"array"}]}
json: error: <stdin>:1:74:                                 ^
{
    "type": "list",
    "args": [
        {
            "type": "array",
            "args": []
        },
        {
            "type": "array",
            "args": "array"
        }
    ],
    "attr": {
        "any": null,
        "plain": null,
        "object": null,
        "array": {
            "open": {
                "sym": "array",
                "lo": null,
                "eq": {
                    "val": {
                        "type": "array",
                        "args": "array"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "closed": {
                "val": {
                    "type": "array",
                    "args": []
                },
                "lo": null,
                "hi": null
            }
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"type":"array","args":[]},{"type":"array","args":"array"}]}'
$

--[ list-list ]-----------------------------------------------------------------

$ json <<< '{"type":"list","args":[{"type":"list","args":[]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "list" (the outer "list" begins at 1:1)
json: error: <stdin>:1:24: {"type":"list","args":[{"type":"list","args":[]}]}
json: error: <stdin>:1:24:                        ^
command failed: json <<< '{"type":"list","args":[{"type":"list","args":[]}]}'
$ json <<< '{"type":"list","args":[{"type":"list","args":[{"type":"list","args":[]}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "list" (the outer "list" begins at 1:1)
json: error: <stdin>:1:24: {"type":"list","args":[{"type":"list","args":[{"type":"l
json: error: <stdin>:1:24:                        ^
command failed: json <<< '{"type":"list","args":[{"type":"list","args":[{"type":"list","args":[]}]}]}'
$ json <<< '{"type":"list","args":["boolean",{"type":"list","args":[{"type":"list","args":[]}]}]}'
json: error: <stdin>:1:34: attribute error: invalid "list" type object: element is a "list" (the outer "list" begins at 1:1)
json: error: <stdin>:1:34: "type":"list","args":["boolean",{"type":"list","args":[{"type":"l
json: error: <stdin>:1:34:                                 ^
command failed: json <<< '{"type":"list","args":["boolean",{"type":"list","args":[{"type":"list","args":[]}]}]}'
$ json <<< '{"type":"list","args":["boolean",{"type":"list","args":[]}]}'
json: error: <stdin>:1:34: attribute error: invalid "list" type object: element is a "list" (the outer "list" begins at 1:1)
json: error: <stdin>:1:34: "type":"list","args":["boolean",{"type":"list","args":[]}]}
json: error: <stdin>:1:34:                                 ^
command failed: json <<< '{"type":"list","args":["boolean",{"type":"list","args":[]}]}'
$ json <<< '{"type":"list","args":["boolean",{"type":"array","args":"number"},{"type":"list","args":[]}]}'
json: error: <stdin>:1:67: attribute error: invalid "list" type object: element is a "list" (the outer "list" begins at 1:1)
json: error: <stdin>:1:67: "type":"array","args":"number"},{"type":"list","args":[]}]}
json: error: <stdin>:1:67:                                 ^
command failed: json <<< '{"type":"list","args":["boolean",{"type":"array","args":"number"},{"type":"list","args":[]}]}'
$ json <<< '{"type":"list","args":["boolean",{"type":"array","args":"number"},{"type":"list","args":[{"type":"list","args":[]}]}]}'
json: error: <stdin>:1:67: attribute error: invalid "list" type object: element is a "list" (the outer "list" begins at 1:1)
json: error: <stdin>:1:67: "type":"array","args":"number"},{"type":"list","args":[{"type":"l
json: error: <stdin>:1:67:                                 ^
command failed: json <<< '{"type":"list","args":["boolean",{"type":"array","args":"number"},{"type":"list","args":[{"type":"list","args":[]}]}]}'
$

--[ list-dup ]------------------------------------------------------------------

#
# # meta command:
# $ for v in '{"plain":null}' '{"plain":false}' '{"plain":true}' '{"plain":123}' '{"plain":"foo"}' '"type"' '"null"' '"boolean"' '"number"' '"string"' '"object"' '"array"'; do T='{"type":"list","args":['"$v"','"$v"']}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test "$?" -ne 0 && echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"plain":null},{"plain":null}]}'
json: error: <stdin>:1:39: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:39: ":"list","args":[{"plain":null},{"plain":null}]}
json: error: <stdin>:1:39:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":null},{"plain":null}]}'
$ json <<< '{"type":"list","args":[{"plain":false},{"plain":false}]}'
json: error: <stdin>:1:40: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:40: :"list","args":[{"plain":false},{"plain":false}]}
json: error: <stdin>:1:40:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":false},{"plain":false}]}'
$ json <<< '{"type":"list","args":[{"plain":true},{"plain":true}]}'
json: error: <stdin>:1:39: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:39: ":"list","args":[{"plain":true},{"plain":true}]}
json: error: <stdin>:1:39:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":true},{"plain":true}]}'
$ json <<< '{"type":"list","args":[{"plain":123},{"plain":123}]}'
json: error: <stdin>:1:38: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:38: e":"list","args":[{"plain":123},{"plain":123}]}
json: error: <stdin>:1:38:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":123},{"plain":123}]}'
$ json <<< '{"type":"list","args":[{"plain":"foo"},{"plain":"foo"}]}'
json: error: <stdin>:1:40: attribute error: invalid "list" type object: duplicated 'plain' entry (previous defined at 1:24)
json: error: <stdin>:1:40: :"list","args":[{"plain":"foo"},{"plain":"foo"}]}
json: error: <stdin>:1:40:                                 ^
command failed: json <<< '{"type":"list","args":[{"plain":"foo"},{"plain":"foo"}]}'
$ json <<< '{"type":"list","args":["type","type"]}'
json: error: <stdin>:1:31: attribute error: invalid "list" type object: duplicated 'any' entry (previous defined at 1:24)
json: error: <stdin>:1:31: {"type":"list","args":["type","type"]}
json: error: <stdin>:1:31:                               ^
command failed: json <<< '{"type":"list","args":["type","type"]}'
$ json <<< '{"type":"list","args":["null","null"]}'
json: error: <stdin>:1:31: attribute error: invalid "list" type object: duplicated 'any' entry (previous defined at 1:24)
json: error: <stdin>:1:31: {"type":"list","args":["null","null"]}
json: error: <stdin>:1:31:                               ^
command failed: json <<< '{"type":"list","args":["null","null"]}'
$ json <<< '{"type":"list","args":["boolean","boolean"]}'
json: error: <stdin>:1:34: attribute error: invalid "list" type object: duplicated 'any' entry (previous defined at 1:24)
json: error: <stdin>:1:34: "type":"list","args":["boolean","boolean"]}
json: error: <stdin>:1:34:                                 ^
command failed: json <<< '{"type":"list","args":["boolean","boolean"]}'
$ json <<< '{"type":"list","args":["number","number"]}'
json: error: <stdin>:1:33: attribute error: invalid "list" type object: duplicated 'any' entry (previous defined at 1:24)
json: error: <stdin>:1:33: {"type":"list","args":["number","number"]}
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '{"type":"list","args":["number","number"]}'
$ json <<< '{"type":"list","args":["string","string"]}'
json: error: <stdin>:1:33: attribute error: invalid "list" type object: duplicated 'any' entry (previous defined at 1:24)
json: error: <stdin>:1:33: {"type":"list","args":["string","string"]}
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '{"type":"list","args":["string","string"]}'
$ json <<< '{"type":"list","args":["object","object"]}'
json: error: <stdin>:1:33: attribute error: invalid "list" type object: duplicated 'any' entry (previous defined at 1:24)
json: error: <stdin>:1:33: {"type":"list","args":["object","object"]}
json: error: <stdin>:1:33:                                 ^
command failed: json <<< '{"type":"list","args":["object","object"]}'
$ json <<< '{"type":"list","args":["array","array"]}'
json: error: <stdin>:1:32: attribute error: invalid "list" type object: duplicated 'any' entry (previous defined at 1:24)
json: error: <stdin>:1:32: {"type":"list","args":["array","array"]}
json: error: <stdin>:1:32:                                ^
command failed: json <<< '{"type":"list","args":["array","array"]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}'
json: error: <stdin>:1:52: attribute error: invalid "list" type object: duplicated 'object' entry (previous defined at 1:24)
json: error: <stdin>:1:52: s":[{"type":"object","args":[]},{"type":"object","args":[]}]}
json: error: <stdin>:1:52:                                 ^
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[]},{"type":"object","args":[]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}'
json: error: <stdin>:1:55: attribute error: invalid "list" type object: duplicated 'open array' entry (previous defined at 1:24)
json: error: <stdin>:1:55: [{"type":"array","args":"type"},{"type":"array","args":"type"}]}
json: error: <stdin>:1:55:                                 ^
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:57: attribute error: invalid "list" type object: duplicated 'closed array' entry (previous defined at 1:24)
json: error: <stdin>:1:57: "type":"array","args":["type"]},{"type":"array","args":["type"]}]
json: error: <stdin>:1:57:                                 ^
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["type"]}]}'
$

--[ json-type ]-----------------------------------------------------------------

# $ jpp -c ../lib/json-type.json|json --terse
# ...
$ json <<< '{"type":"list","args":[{"plain":"type"},{"plain":"null"},{"plain":"boolean"},{"plain":"number"},{"plain":"string"},{"plain":"object"},{"plain":"array"},{"type":"object","args":[{"name":"plain","type":{"type":"list","args":["null","boolean","number","string"]}}]},{"type":"object","args":[{"name":"type","type":{"plain":"object"}},{"name":"args","type":{"type":"array","args":{"type":"object","args":[{"name":"name","type":"string"},{"name":"type","type":"type"}]}}}]},{"type":"object","args":[{"name":"type","type":{"plain":"array"}},{"name":"args","type":{"type":"list","args":["type",{"type":"array","args":"type"}]}}]},{"type":"object","args":[{"name":"type","type":{"plain":"list"}},{"name":"args","type":{"type":"array","args":"type"}}]}]}'
json: error: <stdin>:1:153: attribute error: invalid "list" type object: sort of object of list type not yet supported (the inner list is at 1:201)
json: error: <stdin>:1:153: in":"object"},{"plain":"array"},{"type":"object","args":[{"name":
json: error: <stdin>:1:153:                                 ^
{
    "type": "list",
    "args": [
        {
            "plain": "type"
        },
        {
            "plain": "null"
        },
        {
            "plain": "boolean"
        },
        {
            "plain": "number"
        },
        {
            "plain": "string"
        },
        {
            "plain": "object"
        },
        {
            "plain": "array"
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "plain",
                    "type": {
                        "type": "list",
                        "args": [
                            "null",
                            "boolean",
                            "number",
                            "string"
                        ],
                        "attr": {
                            "any": {
                                "sym": "null",
                                "lo": null,
                                "eq": {
                                    "val": "null",
                                    "lo": null,
                                    "hi": null
                                },
                                "hi": {
                                    "sym": "boolean",
                                    "lo": null,
                                    "eq": {
                                        "val": "boolean",
                                        "lo": null,
                                        "hi": null
                                    },
                                    "hi": {
                                        "sym": "number",
                                        "lo": null,
                                        "eq": {
                                            "val": "number",
                                            "lo": null,
                                            "hi": null
                                        },
                                        "hi": {
                                            "sym": "string",
                                            "lo": null,
                                            "eq": {
                                                "val": "string",
                                                "lo": null,
                                                "hi": null
                                            },
                                            "hi": null
                                        }
                                    }
                                }
                            },
                            "plain": null,
                            "object": null,
                            "array": {
                                "open": null,
                                "closed": null
                            }
                        }
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "type",
                    "type": {
                        "plain": "object"
                    }
                },
                {
                    "name": "args",
                    "type": {
                        "type": "array",
                        "args": {
                            "type": "object",
                            "args": [
                                {
                                    "name": "name",
                                    "type": "string"
                                },
                                {
                                    "name": "type",
                                    "type": "type"
                                }
                            ]
                        }
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "type",
                    "type": {
                        "plain": "array"
                    }
                },
                {
                    "name": "args",
                    "type": {
                        "type": "list",
                        "args": [
                            "type",
                            {
                                "type": "array",
                                "args": "type"
                            }
                        ],
                        "attr": {
                            "any": {
                                "sym": "type",
                                "lo": null,
                                "eq": {
                                    "val": "type",
                                    "lo": null,
                                    "hi": null
                                },
                                "hi": null
                            },
                            "plain": null,
                            "object": null,
                            "array": {
                                "open": {
                                    "sym": "type",
                                    "lo": null,
                                    "eq": {
                                        "val": {
                                            "type": "array",
                                            "args": "type"
                                        },
                                        "lo": null,
                                        "hi": null
                                    },
                                    "hi": null
                                },
                                "closed": null
                            }
                        }
                    }
                }
            ]
        },
        {
            "type": "object",
            "args": [
                {
                    "name": "type",
                    "type": {
                        "plain": "list"
                    }
                },
                {
                    "name": "args",
                    "type": {
                        "type": "array",
                        "args": "type"
                    }
                }
            ]
        }
    ],
    "attr": {
        "any": null,
        "plain": {
            "sym": {
                "plain": "type"
            },
            "lo": {
                "sym": {
                    "plain": "null"
                },
                "lo": {
                    "sym": {
                        "plain": "boolean"
                    },
                    "lo": {
                        "sym": {
                            "plain": "array"
                        },
                        "lo": null,
                        "eq": {
                            "val": {
                                "plain": "array"
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    },
                    "eq": {
                        "val": {
                            "plain": "boolean"
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": null
                },
                "eq": {
                    "val": {
                        "plain": "null"
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": {
                    "sym": {
                        "plain": "number"
                    },
                    "lo": null,
                    "eq": {
                        "val": {
                            "plain": "number"
                        },
                        "lo": null,
                        "hi": null
                    },
                    "hi": {
                        "sym": {
                            "plain": "string"
                        },
                        "lo": {
                            "sym": {
                                "plain": "object"
                            },
                            "lo": null,
                            "eq": {
                                "val": {
                                    "plain": "object"
                                },
                                "lo": null,
                                "hi": null
                            },
                            "hi": null
                        },
                        "eq": {
                            "val": {
                                "plain": "string"
                            },
                            "lo": null,
                            "hi": null
                        },
                        "hi": null
                    }
                }
            },
            "eq": {
                "val": {
                    "plain": "type"
                },
                "lo": null,
                "hi": null
            },
            "hi": null
        },
        "object": {
            "sym": {
                "name": "plain"
            },
            "lo": null,
            "eq": {
                "sym": {
                    "node": {
                        "type": "list",
                        "args": [
                            "null",
                            "boolean",
                            "number",
                            "string"
                        ]
                    }
                },
                "lo": null,
                "eq": {
                    "val": {
                        "type": "object",
                        "args": [
                            {
                                "name": "plain",
                                "type": {
                                    "type": "list",
                                    "args": [
                                        "null",
                                        "boolean",
                                        "number",
                                        "string"
                                    ]
                                }
                            }
                        ]
                    },
                    "lo": null,
                    "hi": null
                },
                "hi": null
            },
            "hi": {
                "sym": {
                    "name": "type"
                },
                "lo": null,
                "eq": {
                    "sym": {
                        "node": {
                            "plain": "object"
                        }
                    },
                    "lo": {
                        "sym": {
                            "node": {
                                "plain": "array"
                            }
                        },
                        "lo": null,
                        "eq": {
                            "sym": {
                                "name": "args"
                            },
                            "lo": null,
                            "eq": {
                                "sym": {
                                    "node": {
                                        "type": "list",
                                        "args": [
                                            "type",
                                            {
                                                "type": "array",
                                                "args": "type"
                                            }
                                        ]
                                    }
                                },
                                "lo": null,
                                "eq": {
                                    "val": {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "type",
                                                "type": {
                                                    "plain": "array"
                                                }
                                            },
                                            {
                                                "name": "args",
                                                "type": {
                                                    "type": "list",
                                                    "args": [
                                                        "type",
                                                        {
                                                            "type": "array",
                                                            "args": "type"
                                                        }
                                                    ]
                                                }
                                            }
                                        ]
                                    },
                                    "lo": null,
                                    "hi": null
                                },
                                "hi": null
                            },
                            "hi": null
                        },
                        "hi": {
                            "sym": {
                                "node": {
                                    "plain": "list"
                                }
                            },
                            "lo": null,
                            "eq": {
                                "sym": {
                                    "name": "args"
                                },
                                "lo": null,
                                "eq": {
                                    "sym": {
                                        "node": {
                                            "type": "array",
                                            "args": "type"
                                        }
                                    },
                                    "lo": null,
                                    "eq": {
                                        "val": {
                                            "type": "object",
                                            "args": [
                                                {
                                                    "name": "type",
                                                    "type": {
                                                        "plain": "list"
                                                    }
                                                },
                                                {
                                                    "name": "args",
                                                    "type": {
                                                        "type": "array",
                                                        "args": "type"
                                                    }
                                                }
                                            ]
                                        },
                                        "lo": null,
                                        "hi": null
                                    },
                                    "hi": null
                                },
                                "hi": null
                            },
                            "hi": null
                        }
                    },
                    "eq": {
                        "sym": {
                            "name": "args"
                        },
                        "lo": null,
                        "eq": {
                            "sym": {
                                "node": {
                                    "type": "array",
                                    "args": {
                                        "type": "object",
                                        "args": [
                                            {
                                                "name": "name",
                                                "type": "string"
                                            },
                                            {
                                                "name": "type",
                                                "type": "type"
                                            }
                                        ]
                                    }
                                }
                            },
                            "lo": null,
                            "eq": {
                                "val": {
                                    "type": "object",
                                    "args": [
                                        {
                                            "name": "type",
                                            "type": {
                                                "plain": "object"
                                            }
                                        },
                                        {
                                            "name": "args",
                                            "type": {
                                                "type": "array",
                                                "args": {
                                                    "type": "object",
                                                    "args": [
                                                        {
                                                            "name": "name",
                                                            "type": "string"
                                                        },
                                                        {
                                                            "name": "type",
                                                            "type": "type"
                                                        }
                                                    ]
                                                }
                                            }
                                        }
                                    ]
                                },
                                "lo": null,
                                "hi": null
                            },
                            "hi": null
                        },
                        "hi": null
                    },
                    "hi": null
                },
                "hi": null
            }
        },
        "array": {
            "open": null,
            "closed": null
        }
    }
}
command failed: json <<< '{"type":"list","args":[{"plain":"type"},{"plain":"null"},{"plain":"boolean"},{"plain":"number"},{"plain":"string"},{"plain":"object"},{"plain":"array"},{"type":"object","args":[{"name":"plain","type":{"type":"list","args":["null","boolean","number","string"]}}]},{"type":"object","args":[{"name":"type","type":{"plain":"object"}},{"name":"args","type":{"type":"array","args":{"type":"object","args":[{"name":"name","type":"string"},{"name":"type","type":"type"}]}}}]},{"type":"object","args":[{"name":"type","type":{"plain":"array"}},{"name":"args","type":{"type":"list","args":["type",{"type":"array","args":"type"}]}}]},{"type":"object","args":[{"name":"type","type":{"plain":"list"}},{"name":"args","type":{"type":"array","args":"type"}}]}]}'
$


