{
  "ml": {
    "v": "7",
    "eng": "2.12.0-beta.1",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.000052829582,
        "rte": "az",
        "prob": 0.000052829582
      },
      {
        "cls": 0,
        "raw": 0.00011293093,
        "rte": "az/tar",
        "prob": 0.00011293093
      }
    ],
    "prob": 0.000052829582,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00005282958227326162,
        "type": "tar.gz"
      },
      {
        "id": 1,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000016649564713588916,
        "type": "perl"
      },
      {
        "id": 13,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000019997358322143555,
        "type": "perl"
      },
      {
        "id": 14,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000019321838408359326,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-10-17T05:59:46Z"
  },
  "path": "Text-Fab-0.02.tar.gz",
  "raw": {
    "files": [
      {
        "id": 0,
        "ctx": [
          {
            "b": "abZyg@qa/Q0S#zkCYUJbvpy/xe?/4kByxg\u0026(]/b=*SkMN8Qs=J=(\u003cWycKa6do.HZ]U/6b=+%h::Bm72QBCeC?*q]BDL0Z6[)@d9-EYau68iZMg=opYMu}Yta{3g?x(GVUR}L^OB(0HJ{UDvKWCk",
            "ln": 0
          }
        ],
        "mol": "H(F)Md",
        "sha": "67415b4fdedb69a9c451b357f04c4543a01e933d25b696894af266559df663e6",
        "path": "Text-Fab-0.02.tar.gz",
        "risk": 3,
        "size": 33100,
        "type": "tar.gz",
        "facts": {
          "metrics": {
            "file": {
              "size": 33100,
              "entropy": 7.99
            },
            "parse": {
              "error_count": 1
            },
            "binary": {
              "peak_region_bytes": 32768,
              "peak_region_entropy": 7.83
            }
          }
        },
        "ident": {
          "name": {
            "value": "Text-Fab",
            "source": "file.basename",
            "verified": false
          },
          "trust": "unsigned",
          "version": {
            "value": "0.02",
            "source": "file.basename",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "metadata/package/testing/presence/harness::perl-test-file",
            "conf": 0.85,
            "crit": 2,
            "desc": "Perl test file (.t) or t/ dir",
            "from": [
              {
                "file": 5
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-7",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"this\"",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-6",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"with\"",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"the\"",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/import/perl/warnings::warnings",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports warnings",
            "from": [
              {
                "file": 5
              }
            ]
          },
          {
            "id": "metadata/lang/scripted::sigil-variable-decl",
            "conf": 0.8,
            "crit": 2,
            "desc": "Perl sigil variable declaration",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/lang/scripted::use-module",
            "conf": 0.85,
            "crit": 2,
            "desc": "Perl module import statement",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/import/perl/extutils/makemaker::extutils/makemaker",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports ExtUtils::MakeMaker",
            "from": [
              {
                "file": 2
              }
            ]
          },
          {
            "id": "metadata/import/perl/test/more::test/more",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports Test::More",
            "from": [
              {
                "file": 5
              }
            ]
          },
          {
            "id": "metadata/import/perl/strict::strict",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports strict",
            "from": [
              {
                "file": 5
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-3",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"that\"",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-4",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"have\"",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "micro-behaviors/fs/read/file/full::perl-slurp-local-record-separator",
            "conf": 0.94,
            "crit": 3,
            "desc": "Perl slurps a filehandle",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/file/profile/identifier-population::low-identifier-reuse",
            "conf": 0.7,
            "crit": 3,
            "desc": "Low identifier reuse ratio",
            "from": [
              {
                "file": 13
              }
            ]
          },
          {
            "id": "metadata/import/perl/test/exception::test/exception",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports Test::Exception",
            "from": [
              {
                "file": 5
              }
            ]
          },
          {
            "id": "metadata/import/perl/text/fab::text/fab",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports Text::Fab",
            "from": [
              {
                "file": 5
              }
            ]
          },
          {
            "id": "metadata/lang/scripted::subroutine-definition",
            "conf": 0.85,
            "crit": 2,
            "desc": "Perl subroutine definition",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/import/perl/file/temp::file/temp",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports File::Temp",
            "from": [
              {
                "file": 12
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-2",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"and\"",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-5",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"for\"",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/package/testing/presence/harness::test-directory",
            "conf": 1.0,
            "crit": 2,
            "desc": "File identified as a test by path or name",
            "from": [
              {
                "file": 5
              }
            ],
            "uses": [
              0
            ]
          },
          {
            "id": "metadata/import/perl/file/spec::file/spec",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports File::Spec",
            "from": [
              {
                "file": 12
              }
            ]
          }
        ]
      },
      {
        "ctx": [
          {
            "b": "Aa9l(vp%c]raQq@iYY-svMK]7B-Raph7*Nrgck?=B7DFnBAh89Buo?LB7DFrvrcm1zFa2L3jpY]AV=Sdmn^5QpFJ2}asw\u0026}fFU1q3jn22B7DE)Bz(hdvR/P#cUc.6z/fblj0k:\u003cmSiq\u0026xl4{kA3fjtvq{p3z/*4yc$EmcB0bvsBrCTEAbY-oBrA}Dl}5kswObH]wO#0?B0bgmay[]5viE6bB-RapmSJ6KDsZ5?vrS\u0026lCpmJvw[sCLwO3g0aARp9CptP",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "mSJ6KDsXjuxLz72do!GiaBKO7boOM\u0026eG^C)w)]*#BrA}Vy\u00260M?v@3cdeIeKY3uHu0aywU\u003cw)]*#Bye:1By/GewNP:[AV/YoarR^HzfWlLbW$[dw[u0las7(qw]?K9diH+@kWMOWarR^HA+funA=90NazCBgbYvpbB7GCojV%]wasnATB9g@kBAe=PvS=o{wPxsAfF1t3diJhwaswxYi%)8",
            "ln": 258,
            "col": 28,
            "line": 12
          },
          {
            "b": "wPRG[By!#9w]zYjw[=6)aswBBvrt{9tY7-E3lQDlarR^HaBKO7arR^HarR^Hz/xo9az(xDbXyZvasxo0efDiGvrt]+arR^HarR^HarR^Hz/M$hx\u003enzhmpeIQoHSq^ml%sGmn^2VqAt{/vqY$3BrCQnvpQG{zEWH9wmV(}x(4u6cNrkhByuKTas5anzx.dHarR^HarR^HzfWlHv@DmbwO#PjjS[oNaBtkEz!0i(as5Q4auQ]YxG^L!i%)8MarR^HarUfgz/YFjbXyZK3jm)#arR^HarUSCB7=WYDN9Vzy?tm.DUEwcy\u0026%o1uVQr$v@3HvefDiGvrt{t3lQDlarR^Haz2.8y-[6iarR^HarR^HarR^HbY^Kkw?uh=A=kD0B8$YfBAh8kxdb3nz/fVdzGC",
            "ln": 7441,
            "col": 56,
            "line": 230
          },
          {
            "b": "arR!qx\u003enzhmpeCGpdE#HpdFUWpdeCVqCQp?iV]UUzE^9!A=l8tay!?@y?mc1Cwhejaz#9uz/xo9azk.kB-pP6b0cbOarR!P3jm)#arUJDas85EA3dp^AbPXrkZK+$wO+%gk6{{.z/{2aB97\u00262yKHQ)3jm)#arUxgasH=iw[=c]wfrdfy*?H9AW-bT",
            "ln": 19882,
            "col": 6,
            "line": 597
          },
          {
            "b": "vpK83Eiq/S3jm)#arR)Kga\u003cXrCX7xcBy=Olz/Z2tz/fb%ayO=4x(v)gaA8cuBzbkdA+frlz/PA1az2C2y\u0026sxezF78kByxo53lQDlazCBgc)S[MA4Kn2AbP/tAbPS9wpkNEclLN2bY)%zeK1J2z/Z2tz/fb%EsiK!DKp(rarR^HarUomAV/jAas7B",
            "ln": 20786,
            "col": 81,
            "line": 623
          },
          {
            "b": "wPRp2wN/*@z/cXfz/o-eAV/7lavoHTwLuJTz/{dearR^HarR^Hjz5IIBy/FRlVl{?A+Pf1BrAs)gbRfEw]zQfwPx%warR^Hbv$+6uVP^*BzkVh3jn}fwNPa7avFT%lScGLr7P\u003eX3joc.raQq@iYY-svM\u003e]GB0bvsBrC0mBy/rdy*?B1zF786zF9W3wJI2GBn",
            "ln": 28573,
            "col": 10,
            "line": 876
          },
          {
            "b": "azC)tzeTDaaA8oyy?mWeayMyfx(mT4vqE5gwoz-#a%p@Gvru66zdc{/x(mG8Bzb98az2!pz/YGhayMylBywS{wGTonnG.}-aAhvnze19aC4z!mAaK5#BzkVhB1OOfz/Z1yz!pblxK@qgB8tuaBrR\u0026zz!A=]azbLjaAg+fB7]J8aAI*CByxzBaAhvtv}x.5x(mMaBy/YsefFwswftx5wNPW{zF784z/6DfwQ2tcz/fVqz!{LqBAhIlBAIRnB0bgray]51wOkB[wN({9zY\u003cgzwPxwjz/ff3xlwl6vR/P#v@Dj6z/fc7BAo5Sc}Fo2wP?T9efFvzv/",
            "ln": 28780,
            "col": 98,
            "line": 882
          },
          {
            "b": "x\u003e8p4vr9GiD2v.jCPZ{payMyivrcE7v%8P@ATD=az^)J]z6iwczddc@e*8n+ra]#!ayPq2xLzN1v@#\u003clwGUz}zf3?wzY\u0026$wwPzp0zdK\u0026ixK@q$CYmkmx\u003eqf(wPF#rx([1}wmY*@xkRB3xcuh:Oo5yYAboaBFsN/)z/ff3xlwl6vR/P#B9R?GwO(IF",
            "ln": 29682,
            "col": 44,
            "line": 888
          },
          {
            "b": "xM4*gwGUz7zEEx[wft@8v@#B6zxJU9aMv{wzfoVpx(E)1azbB#C5Izx\u0026^^NxxKM6}ayX[[zxJF3w[=c]wg/07xLzJgvqG:#Cxj)nazbC3CXHS6wGUV2wPzj1v}YN^vqE6cD2[7sz6i+eaMv{wz*2YjA+P5)vR/P#By/rdy*?A%Bk?.ve*a8nv}W0b",
            "ln": 33432,
            "col": 165,
            "line": 916
          },
          {
            "b": "BZ]8cxLy%^B-qyACw7M9aAhvtv}x.5x(mMaBzbkdx(m)jBrz#yx([31AV!?pazth3wnC%$xcqqfwGVbmwmoN\u003eaA7\u003cmx([zsv@Dl%x\u003eF$tz/M$fB.\u003e\u0026czF78gB-X:Ix([1",
            "ln": 55943,
            "col": 314,
            "line": 1339
          },
          {
            "b": "aAz48zGGDgwN%!JOGIuMBy/FnxKL^?y?W^1aAIWnxDQ.awnc6}v@#BdwJ{Ies7#+\u0026aARpdayYnhBz(3QHluW#ayPkdA=kw@xDOZExK#67BzbkdAb]JeA=kD0B8#nuaz\u003eLjaMv{wv{%g\u0026aAIErwGTonn-Cn\u003eaARJAxKL^?y?j-hxK@q%x(W={Bzk]fdiJ.Cx(+zhB0b45B9P!?x(\u003eFiB0b45B9O)IzY\u0026[9yH[SfB-I4oBzb98aAIWnxDQ.av{%g\u0026az\u003eLjaA.Tlvru66\u0026^^LvxK@q@z/ff3xlwl6BzkVh\u0026^^Nxz!pblxK@r9A+figz!0v1B8M7wCw7YbwGU=1wPhv3xcuh:OoeBQazC.nwPzV%y-)+fAb]JhwO#P#BzkVhaA7\u003cmBzbkdvqG%}vpTTnA+eV\u0026eOP9wB-YiSz.k{GwPhWdv}x.5\u0026^^Nxw{4{aC{3*sBywW3e*9Y6Cv+@eAX5tSxK#67BzbkdAb]JeA=kD0B8#nuazC)tv@DmbA=k=gwN(]}A=k!qviw3FvK@TCxKM09xKL\u003e0wO#Mix(n0lwNP9(z!pcKFsHaTy\u00260*6xcqqfwGTonn-Cn\u003eazC)TaMv{wwQ4{haARpdaAhvjAb](bwPI{hA]IRuefG4FwO@Siz/65{z!abowO=B0asItBwGTDJvJ^fyv{%g\u0026x(mMaBzbkdk#pc7aARpdzxN}?On@gLzGGDgaARpdaAhvjAb](bwPI{hAV!!6vqfSsFsOqnra]\u0026-wOb\u003e3wGVhgwO@SjxK@r9A+figz!0v1B8M7wv{%l$B7F]9Bzb98aARpday/8czFHweBrCHhByw)3wN(]$",
            "ln": 56603,
            "col": 247,
            "line": 1341
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 73828,
              "entropy": 4.96
            },
            "text": {
              "lines": 1694,
              "top_char": 101,
              "max_ws_run": 11,
              "digit_ratio": 0.01,
              "space_count": 13666,
              "char_entropy": 4.96,
              "unique_chars": 103,
              "top_char_null": 0,
              "lines_over_200": 54,
              "lines_over_500": 16,
              "top_char_ratio": 0.08,
              "avg_line_length": 42.58,
              "max_line_length": 904,
              "non_ascii_ratio": 0.02,
              "empty_line_ratio": 0.3,
              "last_line_length": 4,
              "long_token_count": 5,
              "whitespace_ratio": 0.21,
              "line_length_stddev": 80.25,
              "unusual_whitespace": 8,
              "repeated_char_sequences": 173,
              "trailing_whitespace_lines": 1
            },
            "parse": {
              "error_count": 1
            },
            "binary": {
              "peak_region_bytes": 39936,
              "peak_region_entropy": 5.19
            },
            "source": {
              "ast_unavailable": 1,
              "ast_unavailable.tree_sitter_guard": 1
            }
          }
        },
        "id": 1,
        "mol": "H(F)",
        "path": "Text-Fab-0.02.tar.gz!!Text-Fab-0.02/lib/Text/Fab.pm",
        "pid": 0,
        "risk": 2,
        "sha": "3703703886a349f67aaf4d2e88041d248bf53bb7be17a6e05b8a2ec6e4d34a0f",
        "size": 73828,
        "traits": [
          {
            "id": "metadata/lang/natural::lang-english--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"the\"",
            "spans": [
              [
                20834,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-2",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"and\"",
            "spans": [
              [
                28942,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-3",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"that\"",
            "spans": [
              [
                28828,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-4",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"have\"",
            "spans": [
              [
                33480,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-5",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"for\"",
            "spans": [
              [
                108,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-6",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"with\"",
            "spans": [
              [
                19930,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-7",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"this\"",
            "spans": [
              [
                29730,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/scripted::sigil-variable-decl",
            "conf": 0.8,
            "crit": 2,
            "desc": "Perl sigil variable declaration",
            "spans": [
              [
                57,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/scripted::subroutine-definition",
            "conf": 0.85,
            "crit": 2,
            "desc": "Perl subroutine definition",
            "spans": [
              [
                306,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/scripted::use-module",
            "conf": 0.85,
            "crit": 2,
            "desc": "Perl module import statement",
            "spans": [
              [
                31,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/read/file/full::perl-slurp-local-record-separator",
            "conf": 0.94,
            "crit": 3,
            "desc": "Perl slurps a filehandle",
            "spans": [
              [
                7620,
                15
              ]
            ]
          }
        ],
        "type": "perl"
      },
      {
        "ctx": [
          {
            "b": "B-RapB98Cpv@%^tB-RapCvtJfx(mN8i%{aKwGT@-B96D7o(C5-i%{aKwGT@-B96D7mr\u0026rNAcb/jzAwhFB7DE[wQ5qTi.0K!i%(sqB7FY%yByMfwQ5qTi.0K!cN?a:3t\u003e5hbXyE]uU0OTauZ\u0026DwQ5qTi.0K!eK15-Cpj[43m6j(vQAUOxdVqxq^S)MwPRo#vrb{%BAn\u0026TlUHgIwg5]JcS1k(wO#Pqdlv\u003eZw)]dQwmoa5k2b3-uVP!2uVoB]wO#Qhc)}\u00261",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "lQ-TV3lQDlaszkwy?tnkzFiQ4x()^3v}u=[x\u003equdCwhejavPT8sWL\u003eOlTJzWnjuAFr6:nDmjge73uP%4z*cnfz!*Fxas7McvQAUOxdVqxq^S)MwPRo#vrb{%BAn\u0026T",
            "ln": 309,
            "col": 78,
            "line": 13
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "use_ok"
            ],
            [
              "",
              "Text::Fab.new"
            ],
            [
              "",
              "$fab_dag.NS__set_parents"
            ],
            [
              "",
              "$fab_dag.NS__set_parents"
            ],
            [
              "",
              "throws_ok"
            ],
            [
              "",
              "$fab_dag.NS__set_parents"
            ],
            [
              "",
              "throws_ok"
            ],
            [
              "",
              "$fab_dag.NS__set_parents"
            ],
            [
              "",
              "Text::Fab.new"
            ],
            [
              "",
              "$fab_multi.out__target_section"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "$fab_multi.out__target_section"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "$fab_multi.out__target_section"
            ],
            [
              "",
              "$fab_multi.out__embed"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "$fab_multi.out__embed"
            ],
            [
              "",
              "$fab_multi.NS__set_parents"
            ],
            [
              "",
              "is"
            ],
            [
              "",
              "$fab_multi.assemble"
            ],
            [
              "",
              "Text::Fab.new"
            ],
            [
              "",
              "$fab_missing.out__target_section"
            ],
            [
              "",
              "$fab_missing.out__embed"
            ],
            [
              "",
              "throws_ok"
            ],
            [
              "",
              "$fab_missing.assemble"
            ],
            [
              "",
              "Text::Fab.new"
            ],
            [
              "",
              "$fab_loop.out__target_section"
            ],
            [
              "",
              "$fab_loop.out__embed"
            ],
            [
              "",
              "$fab_loop.out__target_section"
            ],
            [
              "",
              "$fab_loop.out__embed"
            ],
            [
              "",
              "throws_ok"
            ],
            [
              "",
              "$fab_loop.assemble"
            ],
            [
              "",
              "Text::Fab.new"
            ],
            [
              "",
              "$fab_asif.out__target_section"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "$fab_asif.out__target_section"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "$fab_asif.NS__set_parents"
            ],
            [
              "",
              "$fab_asif.NS__set_parents"
            ],
            [
              "",
              "$fab_asif.out__target_section"
            ],
            [
              "",
              "$fab_asif.out__embed"
            ],
            [
              "",
              "is"
            ],
            [
              "",
              "$fab_asif.assemble"
            ],
            [
              "",
              "$fab_asif.out__target_section"
            ],
            [
              "",
              "$fab_asif.out__embed"
            ],
            [
              "",
              "is"
            ],
            [
              "",
              "$fab_asif.assemble"
            ],
            [
              "",
              "Text::Fab.new"
            ],
            [
              "",
              "$fab_blind.out__target_section"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "$fab_blind.out__target_section"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "$fab_blind.NS__set_parents"
            ],
            [
              "",
              "$fab_blind.NS__set_parents"
            ],
            [
              "",
              "$fab_blind.cfg__set"
            ],
            [
              "",
              "$fab_blind.out__target_section"
            ],
            [
              "",
              "$fab_blind.out__embed"
            ],
            [
              "",
              "is"
            ],
            [
              "",
              "$fab_blind.assemble"
            ],
            [
              "",
              "Text::Fab.new"
            ],
            [
              "",
              "$fab_directive.process_string"
            ],
            [
              "",
              "is_deeply"
            ],
            [
              "",
              "$fab_directive.cfg__get"
            ],
            [
              "",
              "done_testing"
            ],
            [
              "",
              "Test::Exception"
            ],
            [
              "",
              "Test::More"
            ],
            [
              "",
              "Text::Fab"
            ],
            [
              "",
              "strict"
            ],
            [
              "",
              "warnings"
            ]
          ],
          "mbr": [
            "$fab_asif.NS__set_parents",
            "$fab_asif.assemble",
            "$fab_asif.out__embed",
            "$fab_asif.out__target_section",
            "$fab_blind.NS__set_parents",
            "$fab_blind.assemble",
            "$fab_blind.cfg__set",
            "$fab_blind.out__embed",
            "$fab_blind.out__target_section",
            "$fab_dag.NS__set_parents",
            "$fab_directive.cfg__get",
            "$fab_directive.process_string",
            "$fab_loop.assemble",
            "$fab_loop.out__embed",
            "$fab_loop.out__target_section",
            "$fab_missing.assemble",
            "$fab_missing.out__embed",
            "$fab_missing.out__target_section",
            "$fab_multi.NS__set_parents",
            "$fab_multi.assemble",
            "$fab_multi.out__embed",
            "$fab_multi.out__target_section",
            "Text::Fab.new"
          ],
          "tgt": [
            "$fab_asif.NS__set_parents",
            "$fab_asif.assemble",
            "$fab_asif.out__embed",
            "$fab_asif.out__target_section",
            "$fab_blind.NS__set_parents",
            "$fab_blind.assemble",
            "$fab_blind.cfg__set",
            "$fab_blind.out__embed",
            "$fab_blind.out__target_section",
            "$fab_dag.NS__set_parents",
            "$fab_directive.cfg__get",
            "$fab_directive.process_string",
            "$fab_loop.assemble",
            "$fab_loop.out__embed",
            "$fab_loop.out__target_section",
            "$fab_missing.assemble",
            "$fab_missing.out__embed",
            "$fab_missing.out__target_section",
            "$fab_multi.NS__set_parents",
            "$fab_multi.assemble",
            "$fab_multi.out__embed",
            "$fab_multi.out__target_section",
            "Text::Fab.new",
            "done_testing",
            "is",
            "is_deeply",
            "push",
            "throws_ok",
            "use_ok"
          ],
          "metrics": {
            "ast": {
              "max_depth": 12,
              "call_count": 64,
              "node_count": 1387,
              "member_count": 23,
              "max_array_len": 1,
              "member_depth_max": 2
            },
            "file": {
              "size": 3757,
              "entropy": 5.25
            },
            "text": {
              "lines": 97,
              "top_char": 101,
              "max_ws_run": 1,
              "digit_ratio": 0,
              "space_count": 233,
              "char_entropy": 5.25,
              "unique_chars": 69,
              "top_char_null": 0,
              "string_density": 1.06,
              "top_char_ratio": 0.07,
              "avg_line_length": 37.73,
              "max_line_length": 89,
              "empty_line_ratio": 0.26,
              "last_line_length": 15,
              "whitespace_ratio": 0.09,
              "identifier_density": 0.07,
              "line_length_stddev": 28.22,
              "normalized_string_count": 10.46,
              "normalized_unique_identifiers": 0.15
            },
            "binary": {
              "peak_region_bytes": 3757,
              "peak_region_entropy": 5.33
            },
            "imports": {
              "count": 5,
              "third_party_count": 5,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 1249,
              "count": 103,
              "avg_length": 12.13,
              "max_length": 71,
              "avg_entropy": 2.64,
              "entropy_stddev": 0.85
            },
            "identifiers": {
              "count": 7,
              "unique": 1,
              "avg_length": 9,
              "max_length": 9,
              "min_length": 9,
              "avg_entropy": 2.95,
              "reuse_ratio": 0.14
            }
          }
        },
        "id": 13,
        "mol": "Md",
        "path": "Text-Fab-0.02.tar.gz!!Text-Fab-0.02/t/09-inheritance-and-embed.t",
        "pid": 0,
        "risk": 2,
        "sha": "37fd02d1fca05df02268974cb35cb5a221d51e07a3d8b70b478bfc09ee9db142",
        "size": 3757,
        "traits": [
          {
            "id": "metadata/import/perl/test/exception::test/exception",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports Test::Exception",
            "spans": [
              [
                46,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/perl/test/more::test/more",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports Test::More",
            "spans": [
              [
                30,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/perl/text/fab::text/fab",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports Text::Fab",
            "spans": [
              [
                67,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/perl/strict::strict",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports strict",
            "spans": [
              [
                4,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/perl/warnings::warnings",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports warnings",
            "spans": [
              [
                16,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-6",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"with\"",
            "spans": [
              [
                341,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/scripted::sigil-variable-decl",
            "conf": 0.8,
            "crit": 2,
            "desc": "Perl sigil variable declaration",
            "spans": [
              [
                100,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/scripted::use-module",
            "conf": 0.85,
            "crit": 2,
            "desc": "Perl module import statement",
            "spans": [
              [
                0,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/testing/presence/harness::perl-test-file",
            "conf": 0.85,
            "crit": 2,
            "desc": "Perl test file (.t) or t/ dir"
          },
          {
            "id": "metadata/file/profile/identifier-population::low-identifier-reuse",
            "conf": 0.7,
            "crit": 3,
            "desc": "Low identifier reuse ratio"
          },
          {
            "id": "metadata/package/testing/presence/harness::test-directory",
            "conf": 1.0,
            "crit": 2,
            "desc": "File identified as a test by path or name",
            "uses": [
              8
            ]
          }
        ],
        "type": "perl"
      },
      {
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 894,
              "entropy": 4.59
            },
            "binary": {
              "peak_region_bytes": 894,
              "peak_region_entropy": 4.59
            },
            "registry": {
              "is_deprecated": 0,
              "publisher_verified": 1
            }
          }
        },
        "id": 14,
        "path": "Text-Fab@0.02.registry.json",
        "pid": 0,
        "rel": "registry",
        "role": "sidecar",
        "sha": "6f068bba9b05838e0045ca21e051e50937aa463eb9dd5a561b7af07884ca9331",
        "size": 894,
        "type": "registry"
      }
    ],
    "rev": "17dc6",
    "v": "8"
  }
}