A deep dictionary is a dictionary in which each each key has the same representation it would have in a standard dictionary, and each value is a deep list: It is either another deep dictionary or simple value, which is represented as a list containing only one item. Because it is often useful to assign multiple values to an entry, that one item is itself a list of values.
Another way to define deep dictionary is as a deep list that represents a tree: Each value, is a branch that and may or may not have subordinate branches.
A deep dictionary can be unambiguously merged into another deep dictionary.
The key benefit of a deep dictionary is that the structure is self-describing: In contrast with a standard dictionary, it is possible to determine whether a value is a leaf node or an intermediate node. A value that is a list with more than one item is additional structure, whereas a value that is a list with only one item does not.
Unlike a standard Tcl dictionary, a deep dictionary is suitable for communicating an ordered tree without prior agreement between the parties about the exact shape of the tree.
Example:
{key 1} {{
{value 1}
{value 2}
}}
{key 2} {
{key 2a} {{{value 3}}}
{key 2b} {{
{value 4}
{value 5}
}}
}