code: function getTableOfContentsMarkdown(schema, orderedTypes, headerLevel) {
      var md = style.getHeaderMarkdown(headerLevel) + ' Objects\n';
      for (var title in orderedTypes) {
          // Regardless of what the user chooses for how types are auto-linked, we'll always
          // link the table-of-contents options.
          const currentType = orderedTypes[title];
          if (title === schema.title || currentType.parents.length > 1 || currentType.parents.indexOf(schema.title) !== -1) {
              var typeName = currentType.schema.typeName;
              if (!defined(typeName)) {
                  typeName = title.toLowerCase().replace(/ /g, ".");
              }
              const item = style.getTOCLink(title, typeName) + (title === schema.title ? ' (root object)' : '');
              md += style.bulletItem(item);
              if (title !== schema.title) {
                  md += getRecursiveTOC(orderedTypes, title, 1);
              }
          }
      }
      return md;
  }
docs: ////////////////////////////////////////////////////////////////////////////// 
  @function getTableOfContentsMarkdown
  Print a table of contents indicating (and linking to) all of the types that are documented
  @param  {object} schema       The root schema that the documentation is for.
  @param  {object} orderedTypes The types for the TOC, as an ordered map from schema.title to objects
  containing the schema, the file name, parent titles and children titles
  @param  {int} headerLevel     The level that the header for the TOC should be displayed at.
  @return {string} The markdown for the table of contents.