code: function graph (processedTypes, typeTheme) {
    var result = ''
  
    if (typeTheme.group) {
      result += 'subgraph cluster_' + groupId++ + ' {'
      if (typeTheme.color) {
        result += 'color=' + typeTheme.color + ';'
      }
      if (typeTheme.groupLabel) {
        result += 'label="' + typeTheme.groupLabel + '";'
      }
    }
  
    result += _.map(processedTypes, v => {
      // sort if desired
      if (this.theme.field.sort) {
        v.fields = _.sortBy(v.fields, 'name')
      }
  
      var rows = _.map(v.fields, v => {
        return {
          text: createField.call(this, v),
          port: v.name + 'port'
        }
      })
  
      return createTable.call(this, {
        typeName: getTypeDisplayName(v.name),
        color: typeTheme.color,
        stereotype: typeTheme.stereotype,
        rows: rows
      })
    }).join('\n')
  
    if (typeTheme.group) {
      result += '}'
    }
  
    result += '\n\n'
    return result
  }
docs: For the provided simplified types, creates all the tables to represent them. Optionally groups the supplied types in a subgraph.