docs: function recurs(parent, array) {
          const children = parent[childrenKey];
          if (!Array.isArray(children) || children.length === 0) return parent;
          for (let i = 0; i < children.length; i++) {
              recurs(children[i], array);
              delete children[i][childrenKey];
              if (typeof childRender === 'function') {
                  children[i] = childRender(children[i]);
              }
              array.push(children[i]);
          }
          return parent;
      }