strict digraph luaotfload_files { //looks weird with circo ...
    compound       = true;
//  label          = "Schematic of the files included in Luaotfload.";
//  labelloc       = "b";
    fontsize       = "14.4";
    labelfontname  = "Iwona Medium Regular";
    fontname       = "Iwona Light Regular";
    size           = "21cm";
    rankdir        = LR;
    ranksep  = 0.618;
    nodesep  = 1.618;
    edge [
        arrowhead = onormal,
        fontname  = "Iwona Cond Regular",
        penwidth  = 1.0,
    ];
    node [
        //penwidth = 0.7,
        fontname = "Liberation Mono",
        fontsize = 12,
    ];
/* ····································································
 * file structure
 * ································································· */
    fontdbutil  -> font_names   [label="--update",
                                 style=dashed]
    luaotfload -> otfl_fonts_merged [label="merged"]
    luaotfload -> merged_lua_libs     [label="unmerged", style=solid]
    luaotfload -> merged_luatex_fonts [label="unmerged", style=solid]
    luaotfload -> merged_context_libs [label="unmerged", style=solid]
    luaotfload -> luaotfload_libs
    luaotfload -> otfl_blacklist_cnf
    otfl_fonts_merged -> merged_lua_libs     [label="merged",
                                              style=dotted,
                                              lhead=cluster_merged]
    otfl_fonts_merged -> merged_luatex_fonts [label="merged",
                                              style=dotted,
                                              lhead=cluster_merged]
    otfl_fonts_merged -> merged_context_libs [label="merged",
                                              style=dotted,
                                              lhead=cluster_merged]
    merged_luatex_fonts -> font_age [label="luatex-fonts-enc.lua",
                                     ltail=cluster_merged]
    fontdbutil -> fontdbutil_diagnostics [label="--diagnose"]
    fontdbutil -> status [label="version information"]
    fontdbutil_diagnostics -> status [constraint=no, label="hash files"]
    merged_luatex_fonts -> characters [label="luaotfload-auxiliary.lua",
                                       ltail=cluster_merged]
    luaotfload_libs -> font_names [label="luaotfload-database.lua"]
    luaotfload_libs -> typo_krn   [label="luaotfload-extralibs.lua"]
    luaotfload_libs -> font_afk   [label="luaotfload-loaders.lua"]
    mkstatus    -> status     [label="generates from distribution files",
                               style=dashed]
    mkglyphlist -> font_age     [label="generates from glyphlist.txt",
                                 style=dashed]
    mkcharacters -> characters     [label="generates from Context’s char-def.lua",
                                    style=dashed]
    subgraph { rank = same;
               mkcharacters;
               mkglyphlist;
               mkstatus;
               fontdbutil;
               luaotfload }
/* ····································································
 * main files
 * ································································· */
    fontdbutil        [label  = "luaotfload-tool.lua\nmkluatexfontdb.lua",
                       shape  = rect,
                       width  = "3.2cm",
                       height = "1.2cm",
                       color  = "#01012222",
                       style  = "filled,rounded",
                       penwidth=2]
    fontdbutil_diagnostics [label  = "luaotfload-diagnostics.lua",
                            shape  = rect,
                            width  = "3.2cm",
                            height = "1.2cm",
                            color  = "#01012222",
                            style  = "filled,rounded",
                            penwidth=2]
    mkstatus          [label  = "mkstatus",
                       shape  = rect,
                       width  = "3.2cm",
                       height = "1.2cm",
                       color  = "#01012222",
                       style  = "filled,rounded",
                       penwidth=2]
    mkglyphlist       [label  = "mkglyphlist",
                       shape  = rect,
                       width  = "3.2cm",
                       height = "1.2cm",
                       color  = "#01012222",
                       style  = "filled,rounded",
                       penwidth=2]
    mkcharacters      [label  = "mkcharacters",
                       shape  = rect,
                       width  = "3.2cm",
                       height = "1.2cm",
                       color  = "#01012222",
                       style  = "filled,rounded",
                       penwidth=2]
    luaotfload        [label  = "luaotfload.lua",
                       shape  = rect,
                       width  = "3.2cm",
                       height = "1.2cm",
                       color  = "#01012222",
                       style  = "filled,rounded",
                       penwidth=2]
    /*
     *otfl_fonts        [label = "luaotfload-fonts.lua",
     *                   shape = rect,
     *                   width  = "3.2cm",
     *                   height = "1.2cm",
     *                   color  = "#01012222",
     *                   style  = "filled,rounded",
     *                   penwidth=2]
     */
    otfl_fonts_merged [label = "luaotfload-merged.lua",
                       shape = rect,
                       width  = "3.2cm",
                       height = "1.2cm",
                       color  = "#01012222",
                       style  = "filled,rounded",
                       penwidth=2]
    font_afk [label  = "luaotfload-font-afk.lua",
              shape  = rect,
              width  = "3.2cm",
              height = "1.2cm",
              color  = "#01012222",
              style  = "filled,rounded",
              penwidth=2]
    typo_krn [label  = "luaotfload-typo-krn.lua",
              shape  = rect,
              width  = "3.2cm",
              height = "1.2cm",
              color  = "#01012222",
              style  = "filled,rounded",
              penwidth=2]
/* ····································································
 * luaotfload files
 * ································································· */
    characters [style      = "filled,dashed",
                shape      = rect,
                width      = "3.2cm",
                fillcolor  = "#01012222",
                color      = grey40,
                style      = "filled,dotted,rounded",
                label      = "luaotfload-characters.lua"]
    font_age [style      = "filled,dashed",
              shape      = rect,
              width      = "3.2cm",
              fillcolor  = "#01012222",
              color      = grey40,
              style      = "filled,dotted,rounded",
              label      = "luaotfload-glyphlist.lua"]
    font_names [style      = "filled,dashed",
                shape      = rect,
                width      = "3.2cm",
                fillcolor  = "#01012222",
                color      = grey40,
                style      = "filled,dotted,rounded",
                label      = "luaotfload-names.lua\nluaotfload-names.luc"]
    status [style      = "filled,dashed",
            shape      = rect,
            width      = "3.2cm",
            fillcolor  = "#01012222",
            color      = grey40,
            style      = "filled,dotted,rounded",
            label      = "luaotfload-status.lua"]
    otfl_blacklist_cnf [style      = "filled,dashed",
                        shape      = rect,
                        width      = "3.2cm",
                        fillcolor  = "#01012222",
                        color      = grey40,
                        style      = "filled,dotted,rounded",
                        label      = "luaotfload-blacklist.cnf"]
    luaotfload_libs [
        shape      = box,
        style      = "filled,rounded",
        color      = "grey90:goldenrod4",
        fontsize   = 10,
        label      = <
            
                |   |  Luaotfload Libraries  |  
                 | luaotfload-auxiliary.lua |   luaotfload-features.lua |     
                 | luaotfload-override.lua |    luaotfload-loaders.lua |      
                 | luaotfload-database.lua |    luaotfload-color.lua |        
                 | luaotfload-extralibs.lua |   luaotfload-letterspace.lua |  
            
        >,
    ]
/* ····································································
 * merged files
 * ································································· */
   subgraph cluster_merged {
       node [style=filled, color=white];
       style     = "filled,rounded";
       color     = "grey90:dodgerblue4";
       //nodesep   = "3.0";
       rank      = same;
       label     = "Merged Libraries";
       gradientangle=0;
       merged_lua_libs;
       merged_luatex_fonts;
       merged_context_libs;
   }
    otfl_fonts_merged -> merged_lua_libs
    otfl_fonts_merged -> merged_luatex_fonts
    otfl_fonts_merged -> merged_context_libs
    merged_lua_libs [
        shape      = box,
        style      = "filled,rounded",
        color      = "#FFFFFFAA",
        fontsize   = 10,
        label      = <
            
                |   |  Lua Libraries from Context  |  
                 | l-lua.lua |      l-lpeg.lua |     l-function.lua |   
                 | l-string.lua |   l-table.lua |    l-io.lua |         
                 | l-file.lua |     l-boolean.lua |  l-math.lua |       
                 | util-str.lua |                                                   
            
        >,
    ]
    merged_luatex_fonts [
        shape      = box,
        style      = "filled,rounded",
        color      = "#FFFFFFAA",
        fontsize   = 10,
        label      = <
            
                |   |  Font Loader (LuaTeX-Fonts)  |  
                 | luatex-basics-gen.lua |  luatex-basics-nod.lua |  
                 | luatex-fonts-enc.lua |   luatex-fonts-syn.lua |  
                 | luatex-fonts-tfm.lua |   luatex-fonts-chr.lua |  
                 | luatex-fonts-lua.lua |   luatex-fonts-def.lua |  
                 | luatex-fonts-ext.lua |   luatex-fonts-cbk.lua |  
            
        >,
    ]
    merged_context_libs [
        shape      = box,
        style      = "filled,rounded",
        color      = "#FFFFFFAA",
        fontsize   = 10,
        label      = <
            
                |   |   Font and Node Libraries from Context   |  
                 | data-con.lua |  font-ini.lua |  font-con.lua |  
                 | font-cid.lua |  font-map.lua |  font-oti.lua |  
                 | font-otf.lua |  font-otb.lua |  node-inj.lua |  
                 | font-ota.lua |  font-otn.lua |  font-def.lua |  
            
        >,
    ]
}
// vim:ft=dot:sw=4:ts=4:expandtab