One generated documentation page: the unit both renderers work on. The generator writes it twice, side by side -- Foo.md (MarkdownPrinter, for reading the repository itself) and Foo.json (this model, verbatim), which DocPageController reloads to render the html page without needing reflection, a parser, or even the documented source to still exist.
class MMO\doc\models\DocPage extends MMO\doc\models\DocNode
Read a key, without the "undefined array key" notice $node['missing'] would raise (tArray::offsetGet returns by reference, so it cannot null-coalesce on its own).
\ArrayAccess::offsetUnset -- on a list (sequential integer keys, as produced by $bag[] = ...), the element is spliced out (closing the gap and reindexing), matching \unset() semantics on a plain …