{
  "ml": {
    "v": "7",
    "eng": "2.12.0-beta.0",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.00001985828,
        "rte": "az",
        "prob": 0.00001985828
      },
      {
        "cls": 0,
        "raw": 0.00019866228,
        "rte": "az/gem",
        "prob": 0.00019866228
      }
    ],
    "prob": 0.00001985828,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000019858280211337842,
        "type": "gem"
      },
      {
        "id": 1,
        "lvl": -1,
        "conf": 0,
        "prob": 0.0000137786073537427,
        "type": "tar.gz"
      },
      {
        "id": 2,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000012447436347429175,
        "type": "ruby"
      },
      {
        "id": 3,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00001763304135238286,
        "type": "ruby"
      },
      {
        "id": 4,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000014960765838623047,
        "type": "ruby"
      },
      {
        "id": 8,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000011642773642961401,
        "type": "ruby"
      },
      {
        "id": 11,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000012516975402832031,
        "type": "ruby"
      },
      {
        "id": 17,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000014116366401140112,
        "type": "ruby"
      },
      {
        "id": 19,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000011851389899675269,
        "type": "ruby"
      },
      {
        "id": 22,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000015735626220703125,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-16T17:25:34Z"
  },
  "path": "bestguigui_lab-0.13.0.gem",
  "raw": {
    "files": [
      {
        "id": 0,
        "mol": "H(Db)Md(Pt)",
        "sha": "1c8e740f01f02740885965877b6b919eacb839f1416df8f06385ed1a8aec492f",
        "path": "bestguigui_lab-0.13.0.gem",
        "refs": [
          {
            "to": "pkg:gem/gosu",
            "off": 0,
            "kind": "dependency"
          },
          {
            "to": "pkg:gem/opengl-bindings",
            "off": 0,
            "kind": "dependency"
          }
        ],
        "risk": 2,
        "size": 36352,
        "type": "gem",
        "facts": {
          "metrics": {
            "gem": {
              "dependency_count": 2,
              "runtime_dependency_count": 2,
              "development_dependency_count": 0
            },
            "file": {
              "size": 36352,
              "entropy": 7.71
            },
            "binary": {
              "peak_region_bytes": 31744,
              "peak_region_entropy": 7.82
            },
            "archive": {
              "file_count": 3,
              "member_count": 3,
              "script_count": 0,
              "directory_count": 0,
              "executable_count": 0,
              "hidden_file_count": 0,
              "uncompressed_size": 32968,
              "max_filename_length": 17,
              "rtlo_filename_count": 0,
              "format.regular_count": 3,
              "nested_archive_count": 3,
              "path_traversal_count": 0,
              "symlink_escape_count": 0,
              "security.setgid_count": 0,
              "security.setuid_count": 0,
              "security.sticky_count": 0,
              "double_extension_count": 0,
              "security.symlink_count": 0,
              "unicode_filename_count": 0,
              "homoglyph_filename_count": 0,
              "timing.mtime_unique_count": 1,
              "misplaced_executable_count": 0,
              "timing.mtime_spread_seconds": 0,
              "security.world_writable_count": 0
            }
          }
        },
        "ident": {
          "name": {
            "value": "bestguigui_lab",
            "source": "gem.name",
            "verified": false
          },
          "urls": [
            {
              "url": "https://github.com/guillaumequillet/bestguigui_lab",
              "kind": "homepage",
              "source": "gem.homepage"
            }
          ],
          "trust": "unsigned",
          "authors": [
            {
              "name": "Bestguigui",
              "role": "author",
              "source": "gem.authors"
            }
          ],
          "version": {
            "value": "0.13.0",
            "source": "gem.version",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "metadata/lang/natural::lang-french--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "French function-word token \"dans\""
          },
          {
            "id": "metadata/lang/natural::lang-french--atom-2",
            "conf": 0.8,
            "crit": 1,
            "desc": "French function-word token \"avec\""
          },
          {
            "id": "metadata/lang/natural::lang-french",
            "conf": 0.8,
            "crit": 3,
            "desc": "French language detection",
            "from": [
              {
                "file": 1
              },
              {
                "off": 1167,
                "file": 2,
                "line": 21
              },
              {
                "off": 1576,
                "file": 4,
                "line": 33
              },
              {
                "off": 213,
                "file": 8,
                "line": 6
              },
              {
                "off": 364,
                "file": 11,
                "line": 10
              },
              {
                "off": 3782,
                "file": 17,
                "line": 119
              },
              {
                "off": 1010,
                "file": 19,
                "line": 23
              }
            ],
            "uses": [
              0,
              1
            ]
          },
          {
            "id": "micro-behaviors/data/serialize/binary::dense-pack-unpack-calls",
            "mbc": "C0032",
            "conf": 0.9,
            "crit": 3,
            "desc": "Dense Ruby binary packing calls"
          }
        ]
      },
      {
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 32047,
              "entropy": 7.99
            },
            "parse": {
              "error_count": 1
            },
            "binary": {
              "peak_region_bytes": 31744,
              "peak_region_entropy": 7.82
            }
          }
        },
        "id": 1,
        "mol": "H(Db)Md(Pt)",
        "path": "bestguigui_lab-0.13.0.gem!!data.tar.gz",
        "pid": 0,
        "risk": 2,
        "sha": "cb1b88bb9b5fbf2e163de51e59e1bb3e787339782557a09f7194a4f5f04c610c",
        "size": 32047,
        "traits": [
          {
            "id": "metadata/lang/natural::lang-french--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "French function-word token \"dans\""
          },
          {
            "id": "metadata/lang/natural::lang-french--atom-2",
            "conf": 0.8,
            "crit": 1,
            "desc": "French function-word token \"avec\""
          },
          {
            "id": "metadata/lang/natural::lang-french",
            "conf": 0.8,
            "crit": 3,
            "desc": "French language detection",
            "from": [
              {
                "off": 1167,
                "file": 2,
                "line": 21
              },
              {
                "off": 1576,
                "file": 4,
                "line": 33
              },
              {
                "off": 213,
                "file": 8,
                "line": 6
              },
              {
                "off": 364,
                "file": 11,
                "line": 10
              },
              {
                "off": 3782,
                "file": 17,
                "line": 119
              },
              {
                "off": 1010,
                "file": 19,
                "line": 23
              }
            ],
            "uses": [
              0,
              1
            ]
          },
          {
            "id": "micro-behaviors/data/serialize/binary::dense-pack-unpack-calls",
            "mbc": "C0032",
            "conf": 0.9,
            "crit": 3,
            "desc": "Dense Ruby binary packing calls"
          }
        ],
        "type": "tar.gz"
      },
      {
        "ctx": [
          {
            "b": "auZ\u0026OuU0\u003e\u003euTB{2az++3fjFHlBz2-gxlv]}y**^7aAhmwAV/gfB0bHmB8#nxA:@W4az2z0vrcvgwO2{9wmov%az+QiyIv(13jNs+arR^HarR^(x(do\u003ewPF$Sav]{ZxFaglCozkPD$cO{xK@.qAa9\u003c4D(#{cv}YBTAa9\u003c4t{8oMm@JD\u003eiYY\u0026Hvp%d7zE[2uAa9\u003c4efF$ABAhpXaARTDwHO:I4gjj2arR^HarS{\u003cz/]@dB09Q*nmuNM",
            "ln": 230,
            "col": 18,
            "line": 7
          },
          {
            "b": "zdLdsjS)1hz/]@dB6AV@B8L(rwHIC8zdLe44giKKarR^HarR^HboP*3B-FQEzxJL9v}YN/AV/gjC5?dpvrMi(az+QiyIv(kc#rQbfjFHlBz2-gxlv]}y**^ae?O+9efF[uB0a[mwN=eRarR^HarR^HboQ/laAhvtygRGfwmV)1cV%JBy?W%0By/PnauyS=wPI^jBrCKhAV/yhAbY-oBrC0my*!D0wO\u0026$vAa9/gl${V]AcC?B4gjj2",
            "ln": 1103,
            "col": 26,
            "line": 19
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "pwd"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "load_tiles"
            ],
            [
              "",
              "expand_path"
            ],
            [
              "",
              "resolve"
            ],
            [
              "",
              "resolve"
            ],
            [
              "",
              "join"
            ],
            [
              "",
              "resolve"
            ],
            [
              "",
              "default_font_name"
            ],
            [
              "",
              "default_font_name"
            ],
            [
              "",
              "resolve"
            ],
            [
              "",
              "resolve"
            ],
            [
              "",
              "resolve"
            ],
            [
              "",
              "resolve"
            ]
          ],
          "mbr": [
            "Dir.pwd",
            "File.expand_path",
            "File.join",
            "GLTexture.new",
            "Gosu.default_font_name",
            "Hash.new",
            "ObjModel.new"
          ],
          "tgt": [
            "default_font_name",
            "expand_path",
            "join",
            "load_tiles",
            "new",
            "pwd",
            "resolve"
          ],
          "funcs": [
            [
              "resolve",
              967
            ],
            [
              "image",
              1031
            ],
            [
              "sound",
              1086
            ],
            [
              "gem_sound",
              1305
            ],
            [
              "song",
              1399
            ],
            [
              "font",
              1454
            ],
            [
              "model",
              1641
            ],
            [
              "texture",
              1726
            ],
            [
              "frames",
              1785
            ]
          ],
          "metrics": {
            "ast": {
              "op.eq": 1,
              "max_depth": 14,
              "op.concat": 19,
              "call_count": 26,
              "node_count": 559,
              "member_count": 7,
              "max_array_len": 3,
              "op_density.eq": 0,
              "member_depth_max": 2,
              "op_density.concat": 0.03
            },
            "file": {
              "size": 1899,
              "entropy": 4.8
            },
            "text": {
              "lines": 35,
              "top_char": 101,
              "max_ws_run": 1,
              "digit_ratio": 0.01,
              "space_count": 382,
              "char_entropy": 4.8,
              "unique_chars": 68,
              "top_char_null": 0,
              "top_char_ratio": 0.1,
              "avg_line_length": 52.26,
              "max_line_length": 116,
              "non_ascii_ratio": 0,
              "empty_line_ratio": 0.17,
              "last_line_length": 3,
              "whitespace_ratio": 0.24,
              "identifier_density": 4.29,
              "line_length_stddev": 38.29,
              "repeated_char_sequences": 2,
              "normalized_unique_identifiers": 8.97
            },
            "binds": {
              "count": 10
            },
            "binary": {
              "peak_region_bytes": 1899,
              "peak_region_entropy": 4.85
            },
            "source": {
              "class_count": 2,
              "function_count": 9
            },
            "comments": {
              "chars": 347,
              "count": 5,
              "lines": 5,
              "to_code_ratio": 0.17
            },
            "functions": {
              "count": 11
            },
            "identifiers": {
              "count": 150,
              "unique": 46,
              "avg_length": 6.5,
              "max_length": 17,
              "min_length": 3,
              "avg_entropy": 2.38,
              "reuse_ratio": 0.31,
              "length_stddev": 2.97,
              "all_lowercase_ratio": 0.54,
              "double_underscore_count": 1,
              "underscore_prefix_count": 1
            }
          }
        },
        "id": 2,
        "mol": "Md(Pt)",
        "path": "bestguigui_lab-0.13.0.gem!!data.tar.gz!!lib/bestguigui_lab/assets.rb",
        "pid": 1,
        "risk": 1,
        "sha": "de2a524bf925026e17982e3d7b4381eee9c404d5f883615b31ff5d076dd16bde",
        "size": 1899,
        "traits": [
          {
            "id": "metadata/lang/natural::lang-french--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "French function-word token \"dans\"",
            "spans": [
              [
                294,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-french--atom-2",
            "conf": 0.8,
            "crit": 1,
            "desc": "French function-word token \"avec\"",
            "spans": [
              [
                1167,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-french",
            "conf": 0.8,
            "crit": 3,
            "desc": "French language detection",
            "uses": [
              0,
              1
            ],
            "spans": [
              [
                294,
                4
              ],
              [
                1167,
                4
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "ctx": [
          {
            "b": "xMKW\u003c4gjj2arR^HarR^HarUXQazikFvK@TgauZ\u0026?z^M%\u0026z^({0d0V{+aA}KgBz99Cd\u003cf6=asXG\u003cefD=Pe{h5JvpK73cQPZrdgDRbarR^HarR^HarR^%z/Z4ZiZW?4z/NEFwP]LhefF%:azikFvKR-[arR^HarR^HwO#2/3jNs+arR^HarR!qwO96awPRo#x)si9d0No=C}p7Fz!%ujdgDRbarR^HarR^HarR!oy\u0026r=9jS)%sz!%uje]\u003eJlefFCvy\u0026stDxl4M{zy=]uz!%uje[eTtwH[%lz!%uje[5NnxKLg0Aa9l(c)}wscN/GiarR^HarR^HarR^HAa%Mdy-\u003e\u003e-m@JD\u003eiYY\u0026Hvp%d7w].*buT^?\u0026vKJ@ZatCz\u0026vR/%(dgDRbarR^HarR^HarR!vzGxxfBsq9xCX7XxaB2BWC{%gfarR^HarR^HwO#2/3lQDlaz2C34glV:wdn\u003e",
            "ln": 244,
            "col": 80,
            "line": 7
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "negative?"
            ],
            [
              "",
              "negative?"
            ],
            [
              "",
              "unpack"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "pack"
            ],
            [
              "",
              "red"
            ],
            [
              "",
              "green"
            ],
            [
              "",
              "blue"
            ],
            [
              "",
              "alpha"
            ],
            [
              "",
              "from_blob"
            ],
            [
              "",
              "insert"
            ]
          ],
          "mbr": [
            "color.alpha",
            "color.blue",
            "color.green",
            "color.red",
            "x.negative?",
            "y.negative?"
          ],
          "tgt": [
            "alpha",
            "blue",
            "from_blob",
            "green",
            "insert",
            "negative?",
            "new",
            "pack",
            "red",
            "unpack"
          ],
          "funcs": [
            [
              "get_pixel",
              144
            ],
            [
              "set_pixel",
              387
            ]
          ],
          "metrics": {
            "ast": {
              "op.ge": 2,
              "op.add": 1,
              "op.lor": 3,
              "op.mul": 2,
              "max_depth": 15,
              "op.concat": 10,
              "call_count": 11,
              "node_count": 188,
              "member_count": 6,
              "max_array_len": 4,
              "op_density.ge": 0.01,
              "op_density.add": 0.01,
              "op_density.lor": 0.02,
              "op_density.mul": 0.01,
              "max_concat_chain": 2,
              "member_depth_max": 2,
              "op_density.concat": 0.05
            },
            "file": {
              "size": 611,
              "entropy": 4.53
            },
            "text": {
              "lines": 19,
              "top_char": 101,
              "max_ws_run": 1,
              "digit_ratio": 0.02,
              "space_count": 173,
              "char_entropy": 4.53,
              "unique_chars": 50,
              "top_char_null": 0,
              "string_density": 0.11,
              "top_char_ratio": 0.06,
              "avg_line_length": 30.16,
              "max_line_length": 81,
              "empty_line_ratio": 0.16,
              "last_line_length": 3,
              "whitespace_ratio": 0.35,
              "identifier_density": 2.74,
              "line_length_stddev": 27.4,
              "normalized_string_count": 0.46,
              "repeated_char_sequences": 6,
              "suspicious_identifier_ratio": 0.22,
              "normalized_unique_identifiers": 6.36
            },
            "binds": {
              "count": 2
            },
            "binary": {
              "peak_region_bytes": 611,
              "peak_region_entropy": 4.53
            },
            "source": {
              "class_count": 2,
              "function_count": 2
            },
            "strings": {
              "bytes": 4,
              "count": 2,
              "avg_length": 2,
              "max_length": 2,
              "avg_entropy": 1
            },
            "comments": {
              "chars": 96,
              "count": 2,
              "lines": 2,
              "to_code_ratio": 0.12
            },
            "functions": {
              "count": 4
            },
            "identifiers": {
              "count": 52,
              "unique": 27,
              "avg_length": 4.59,
              "max_length": 9,
              "min_length": 1,
              "avg_entropy": 1.72,
              "reuse_ratio": 0.52,
              "length_stddev": 2.54,
              "sequential_names": 6,
              "single_char_count": 6,
              "single_char_ratio": 0.22,
              "all_lowercase_ratio": 0.85
            }
          }
        },
        "id": 3,
        "mol": "H(Db)",
        "path": "bestguigui_lab-0.13.0.gem!!data.tar.gz!!lib/bestguigui_lab/image_pixels.rb",
        "pid": 1,
        "risk": 1,
        "sha": "d55fbd7d2871ad97fb625fbc207b92e53415a12a9c48cc89f0af09b9f63cb7b9",
        "size": 611,
        "traits": [
          {
            "id": "micro-behaviors/data/serialize/binary::dense-pack-unpack-calls",
            "mbc": "C0032",
            "conf": 0.9,
            "crit": 3,
            "desc": "Dense Ruby binary packing calls",
            "spans": [
              [
                308,
                12
              ],
              [
                483,
                10
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "ctx": [
          {
            "b": "3lQDlar@12zGx]dzEWx(eO[\u0026rB-7+kw]zy8efFOlA+5-7B-7+kA(j\u003e*.(mV/zEWleaA.^uy?W%4eO[\u0026rwmov%ay]I3Cow{Q3lQDlar@0Kav6%UzE^s0wPw[Raw#=*wmY^ql[Sv*Cms)4arR^KarR^(A+fc0wPzv5e]\u003eJvwmY^*gH}[PwO+%caBtj@A+fc0wPzv5e]kDAyHpH(c[Wb8diHX{kY7BIwO-#fA::emEglJaarR!py*?ya",
            "ln": 51,
            "col": 19,
            "line": 3
          },
          {
            "b": "h7P\u003e9h8M{cgbQ{uatL/idiG\u0026TA+f90BrCyhayYd}zET!IawVDYo(BMNy-)OkwozZ1aAH%lBy/YsB-I4ovrMi(az+Eev@DHawP-2ov@DHgvqZf#4gjj2arR^HarUlkwdn\u003eP3lQDlarR^HaAhvnC42G74giKKarR^HarR^HboPG{B9f9Fy-)Ckz!@#cww+xY.\u003enb*c=q{9vrrRuxkyy!B7^\u003cYBAh88fk28$z/w0:BAh88diJhzaAz4g",
            "ln": 1512,
            "col": 26,
            "line": 33
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "fullscreen?"
            ],
            [
              "",
              "screen_width"
            ],
            [
              "",
              "screen_height"
            ],
            [
              "",
              "width"
            ],
            [
              "",
              "height"
            ],
            [
              "",
              "gl"
            ],
            [
              "",
              "render_3d_frame"
            ],
            [
              "",
              "gluLookAt"
            ],
            [
              "",
              "glColor4ub"
            ],
            [
              "",
              "red"
            ],
            [
              "",
              "green"
            ],
            [
              "",
              "blue"
            ],
            [
              "",
              "alpha"
            ],
            [
              "",
              "glBegin"
            ],
            [
              "",
              "glVertex3f"
            ],
            [
              "",
              "glVertex3f"
            ],
            [
              "",
              "glVertex3f"
            ],
            [
              "",
              "glVertex3f"
            ],
            [
              "",
              "glColor4ub"
            ],
            [
              "",
              "glEnable"
            ],
            [
              "",
              "glDepthFunc"
            ],
            [
              "",
              "setup_projection"
            ],
            [
              "",
              "glMatrixMode"
            ],
            [
              "",
              "glMatrixMode"
            ],
            [
              "",
              "gluPerspective"
            ],
            [
              "",
              "to_f"
            ]
          ],
          "mbr": [
            "Gosu.gl",
            "Gosu.screen_height",
            "Gosu.screen_width",
            "color.alpha",
            "color.blue",
            "color.green",
            "color.red",
            "width.to_f",
            "window.fullscreen?",
            "window.height",
            "window.width"
          ],
          "tgt": [
            "alpha",
            "blue",
            "fullscreen?",
            "gl",
            "glBegin",
            "glColor4ub",
            "glDepthFunc",
            "glEnable",
            "glMatrixMode",
            "glVertex3f",
            "gluLookAt",
            "gluPerspective",
            "green",
            "height",
            "red",
            "render_3d_frame",
            "screen_height",
            "screen_width",
            "setup_projection",
            "to_f",
            "width"
          ],
          "funcs": [
            [
              "render_3d",
              417
            ],
            [
              "look_at",
              853
            ],
            [
              "draw_ground",
              1142
            ],
            [
              "render_3d_frame",
              1872
            ],
            [
              "setup_projection",
              2160
            ]
          ],
          "metrics": {
            "ast": {
              "op.div": 1,
              "op.sub": 4,
              "max_depth": 13,
              "op.concat": 11,
              "call_count": 26,
              "node_count": 372,
              "member_count": 11,
              "max_array_len": 3,
              "op_density.div": 0,
              "op_density.sub": 0.01,
              "member_depth_max": 2,
              "max_numeric_array": 3,
              "op_density.concat": 0.03
            },
            "file": {
              "size": 2401,
              "entropy": 4.72
            },
            "text": {
              "lines": 60,
              "top_char": 101,
              "max_ws_run": 3,
              "digit_ratio": 0.03,
              "space_count": 642,
              "char_entropy": 4.72,
              "unique_chars": 86,
              "top_char_null": 0,
              "top_char_ratio": 0.08,
              "avg_line_length": 38.02,
              "max_line_length": 113,
              "non_ascii_ratio": 0.02,
              "empty_line_ratio": 0.18,
              "last_line_length": 3,
              "whitespace_ratio": 0.32,
              "identifier_density": 1.73,
              "line_length_stddev": 31.01,
              "repeated_char_sequences": 21,
              "suspicious_comment_ratio": 0.07,
              "suspicious_identifier_ratio": 0.1,
              "normalized_unique_identifiers": 8.63
            },
            "binary": {
              "peak_region_bytes": 2048,
              "peak_region_entropy": 4.69
            },
            "source": {
              "class_count": 2,
              "function_count": 5
            },
            "comments": {
              "chars": 873,
              "count": 14,
              "lines": 14,
              "base64": 1,
              "to_code_ratio": 0.3
            },
            "functions": {
              "count": 7
            },
            "identifiers": {
              "count": 104,
              "unique": 51,
              "avg_length": 7.51,
              "max_length": 16,
              "min_length": 1,
              "avg_entropy": 2.44,
              "reuse_ratio": 0.49,
              "length_stddev": 3.83,
              "has_digit_ratio": 0.1,
              "sequential_names": 2,
              "base64_like_names": 3,
              "single_char_count": 2,
              "single_char_ratio": 0.04,
              "high_entropy_count": 2,
              "high_entropy_ratio": 0.04,
              "all_lowercase_ratio": 0.55,
              "all_uppercase_ratio": 0.12
            }
          }
        },
        "id": 4,
        "mol": "Md(Pt)",
        "path": "bestguigui_lab-0.13.0.gem!!data.tar.gz!!lib/bestguigui_lab/render_3d.rb",
        "pid": 1,
        "risk": 1,
        "sha": "61cafec28cab13f03e293e3fde0fbd5b8affc018d5b5123be76f512e3f91549d",
        "size": 2401,
        "traits": [
          {
            "id": "metadata/lang/natural::lang-french--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "French function-word token \"dans\"",
            "spans": [
              [
                115,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-french--atom-2",
            "conf": 0.8,
            "crit": 1,
            "desc": "French function-word token \"avec\"",
            "spans": [
              [
                1576,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-french",
            "conf": 0.8,
            "crit": 3,
            "desc": "French language detection",
            "uses": [
              0,
              1
            ],
            "spans": [
              [
                115,
                4
              ],
              [
                1576,
                4
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "frames"
            ],
            [
              "",
              "to_a"
            ],
            [
              "",
              "size"
            ],
            [
              "",
              "finished?"
            ],
            [
              "",
              "draw"
            ],
            [
              "",
              "size"
            ],
            [
              "",
              "to_i"
            ],
            [
              "",
              "size"
            ],
            [
              "",
              "min"
            ],
            [
              "",
              "size"
            ]
          ],
          "mbr": [
            "@cycle.size",
            "@frames.size",
            "Assets.frames",
            "frame.draw"
          ],
          "tgt": [
            "draw",
            "finished?",
            "frames",
            "min",
            "size",
            "to_a",
            "to_i"
          ],
          "funcs": [
            [
              "initialize",
              521
            ],
            [
              "update",
              857
            ],
            [
              "frame",
              941
            ],
            [
              "draw",
              994
            ],
            [
              "finished?",
              1224
            ],
            [
              "reset",
              1285
            ],
            [
              "raw_step",
              1364
            ],
            [
              "current_step",
              1424
            ]
          ],
          "metrics": {
            "ast": {
              "op.ge": 1,
              "op.add": 1,
              "op.div": 1,
              "op.lor": 1,
              "op.mod": 1,
              "op.sub": 1,
              "op.land": 1,
              "op.lnot": 1,
              "max_depth": 13,
              "op.concat": 9,
              "call_count": 10,
              "node_count": 260,
              "member_count": 4,
              "max_array_len": 2,
              "op_density.ge": 0,
              "op_density.add": 0,
              "op_density.div": 0,
              "op_density.lor": 0,
              "op_density.mod": 0,
              "op_density.sub": 0,
              "op_density.land": 0,
              "op_density.lnot": 0,
              "member_depth_max": 2,
              "op_density.concat": 0.03
            },
            "file": {
              "size": 1568,
              "entropy": 4.54
            },
            "text": {
              "lines": 48,
              "top_char": 101,
              "max_ws_run": 3,
              "digit_ratio": 0.03,
              "space_count": 424,
              "char_entropy": 4.54,
              "unique_chars": 66,
              "top_char_null": 0,
              "top_char_ratio": 0.08,
              "avg_line_length": 30.67,
              "max_line_length": 102,
              "empty_line_ratio": 0.21,
              "last_line_length": 3,
              "whitespace_ratio": 0.33,
              "identifier_density": 1.56,
              "line_length_stddev": 29.3,
              "repeated_char_sequences": 10,
              "suspicious_comment_ratio": 0.3,
              "suspicious_identifier_ratio": 0.08,
              "normalized_unique_identifiers": 6.98
            },
            "binds": {
              "count": 7
            },
            "binary": {
              "peak_region_bytes": 1568,
              "peak_region_entropy": 4.58
            },
            "source": {
              "class_count": 2,
              "function_count": 8
            },
            "comments": {
              "chars": 456,
              "count": 10,
              "empty": 1,
              "lines": 10,
              "base64": 2,
              "high_entropy": 1,
              "to_code_ratio": 0.26
            },
            "functions": {
              "count": 10
            },
            "identifiers": {
              "count": 75,
              "unique": 39,
              "avg_length": 6.28,
              "max_length": 15,
              "min_length": 1,
              "avg_entropy": 2.22,
              "reuse_ratio": 0.52,
              "length_stddev": 3.36,
              "sequential_names": 3,
              "single_char_count": 3,
              "single_char_ratio": 0.08,
              "high_entropy_count": 2,
              "high_entropy_ratio": 0.05,
              "all_lowercase_ratio": 0.69,
              "all_uppercase_ratio": 0.03
            }
          }
        },
        "id": 8,
        "path": "bestguigui_lab-0.13.0.gem!!data.tar.gz!!lib/bestguigui_lab/animation.rb",
        "pid": 1,
        "risk": 1,
        "sha": "fb6000a89b83f7552793b222b6bda1e294d07874ce0c5f64f324f6f36e039fc4",
        "size": 1568,
        "traits": [
          {
            "id": "metadata/file/extension/token-shape::bare-alphanumeric-script-basename",
            "conf": 0.9,
            "crit": 2,
            "desc": "Script filename is a bare alphanumeric token"
          },
          {
            "id": "metadata/file/line::file-has-30-plus-lines",
            "conf": 0.9,
            "crit": 2,
            "desc": "File has 30 or more lines"
          },
          {
            "id": "metadata/lang/natural::lang-french--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "French function-word token \"dans\"",
            "spans": [
              [
                213,
                0
              ]
            ]
          },
          {
            "id": "metadata/file/data-blob::low-overall-entropy-source",
            "conf": 0.9,
            "crit": 2,
            "desc": "Source file has low overall entropy"
          }
        ],
        "type": "ruby"
      },
      {
        "ctx": [
          {
            "b": "az(4c.(dx.4gjj2arR^HarR)KB75%caz\u003eLauRs]Lwmov%aAIEsatdIMy:*H^FrRg1z!Tkmm[=([CYX7GwIdCdvqY\u003ck4gjj2arR^HarUiaw/$/9x([5$y?Xibc#-Qp",
            "ln": 332,
            "col": 69,
            "line": 9
          },
          {
            "b": "xjSYtx\u003ehs0efFUzvp%d7xK$)\u003cxML^FAa%Mdy\u0026.3m3lQDlarR^Haz2C34giKKarR^HarR^HwmYu}B-qenvpS.Oy*?i%auZ\u0026\u0026AboD3wm6p\u0026CX7Yjc]0m}f!sB\u003etZe.ctZe.ctZe.ctZe.ca$^sN4giKKarR^HarR^HwmYu}B-qenvpS.:x)si9B0#lDwoqGoaztt2xj#xraAh4twO=Ap4gjj2arR^HarR^HarUMgzdN6-B.kk%AV^H/b3YvDfA",
            "ln": 1011,
            "col": 30,
            "line": 28
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "attr_reader"
            ],
            [
              "",
              "upload_image"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "to_blob"
            ],
            [
              "",
              "upload_pixels"
            ],
            [
              "",
              "width"
            ],
            [
              "",
              "height"
            ],
            [
              "",
              "upload_pixels"
            ],
            [
              "",
              "glGenTextures"
            ],
            [
              "",
              "unpack1"
            ],
            [
              "",
              "glBindTexture"
            ],
            [
              "",
              "glTexImage2D"
            ],
            [
              "",
              "glTexParameteri"
            ],
            [
              "",
              "glTexParameteri"
            ],
            [
              "",
              "glTexParameteri"
            ],
            [
              "",
              "glTexParameteri"
            ]
          ],
          "mbr": [
            "image.height",
            "image.to_blob",
            "image.width",
            "name_buffer.unpack1"
          ],
          "tgt": [
            "attr_reader",
            "b",
            "glBindTexture",
            "glGenTextures",
            "glTexImage2D",
            "glTexParameteri",
            "height",
            "new",
            "to_blob",
            "unpack1",
            "upload_image",
            "upload_pixels",
            "width"
          ],
          "funcs": [
            [
              "initialize",
              414
            ],
            [
              "blank",
              552
            ],
            [
              "upload_image",
              603
            ],
            [
              "upload_blank",
              1067
            ],
            [
              "upload_pixels",
              1139
            ],
            [
              "configure_wrapping",
              1550
            ]
          ],
          "metrics": {
            "ast": {
              "op.mul": 1,
              "max_depth": 11,
              "op.concat": 6,
              "call_count": 18,
              "node_count": 260,
              "member_count": 4,
              "op_density.mul": 0,
              "member_depth_max": 2,
              "op_density.concat": 0.02
            },
            "file": {
              "size": 1907,
              "entropy": 4.8
            },
            "text": {
              "lines": 52,
              "top_char": 101,
              "max_ws_run": 1,
              "digit_ratio": 0.02,
              "space_count": 498,
              "char_entropy": 4.8,
              "unique_chars": 74,
              "top_char_null": 0,
              "escape_density": 0.26,
              "string_density": 0.06,
              "top_char_ratio": 0.06,
              "avg_line_length": 34.67,
              "max_line_length": 104,
              "non_ascii_ratio": 0.01,
              "empty_line_ratio": 0.21,
              "hex_escape_count": 5,
              "last_line_length": 3,
              "whitespace_ratio": 0.32,
              "identifier_density": 1.38,
              "line_length_stddev": 29.24,
              "normalized_string_count": 0.42,
              "repeated_char_sequences": 20,
              "suspicious_comment_ratio": 0.22,
              "suspicious_identifier_ratio": 0.05,
              "normalized_unique_identifiers": 6.49
            },
            "binds": {
              "count": 5
            },
            "binary": {
              "peak_region_bytes": 1907,
              "peak_region_entropy": 4.79
            },
            "source": {
              "class_count": 2,
              "function_count": 6
            },
            "strings": {
              "bytes": 10,
              "count": 3,
              "avg_length": 3.33,
              "max_length": 8,
              "avg_entropy": 0.33,
              "entropy_stddev": 0.47
            },
            "comments": {
              "chars": 502,
              "count": 9,
              "lines": 9,
              "high_entropy": 2,
              "to_code_ratio": 0.21
            },
            "functions": {
              "count": 8
            },
            "identifiers": {
              "count": 72,
              "unique": 37,
              "avg_length": 10.05,
              "max_length": 21,
              "min_length": 1,
              "avg_entropy": 2.79,
              "reuse_ratio": 0.51,
              "length_stddev": 4.91,
              "has_digit_ratio": 0.08,
              "sequential_names": 1,
              "base64_like_names": 1,
              "single_char_count": 1,
              "single_char_ratio": 0.03,
              "high_entropy_count": 2,
              "high_entropy_ratio": 0.05,
              "all_lowercase_ratio": 0.49,
              "all_uppercase_ratio": 0.22,
              "numeric_suffix_count": 1
            }
          }
        },
        "id": 11,
        "path": "bestguigui_lab-0.13.0.gem!!data.tar.gz!!lib/bestguigui_lab/gl_texture.rb",
        "pid": 1,
        "risk": 1,
        "sha": "d35859a5985e1a7fc95f5919a1bb3984c9f54e7358cb2766e9c3f345532e951d",
        "size": 1907,
        "traits": [
          {
            "id": "metadata/file/extension/token-shape::bare-alphanumeric-script-basename",
            "conf": 0.9,
            "crit": 2,
            "desc": "Script filename is a bare alphanumeric token"
          },
          {
            "id": "metadata/lang/natural::lang-french--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "French function-word token \"dans\"",
            "spans": [
              [
                364,
                0
              ]
            ]
          },
          {
            "id": "metadata/file/data-blob::low-overall-entropy-source",
            "conf": 0.9,
            "crit": 2,
            "desc": "Source file has low overall entropy"
          },
          {
            "id": "metadata/encoded-payload/unicode-escape",
            "conf": 0.9,
            "crit": 2,
            "desc": "Decoded unicode-escape content",
            "spans": [
              [
                1059,
                0
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "ctx": [
          {
            "b": "Cv+/awftubav*u\u003eBS}@tzxJLfzE^(v4gjj2arR)KvrMi(aA.MAq/DLYB7!6Pz6i?vx=}Iozdm60wPP5nwNYN}wnccdB9hHCy?j-hx([xbe*9F?B7ouewGUM4B9hhs",
            "ln": 3750,
            "col": 59,
            "line": 118
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "width"
            ],
            [
              "",
              "center_y"
            ],
            [
              "",
              "each"
            ],
            [
              "",
              "draw_facet"
            ],
            [
              "",
              "draw_outline"
            ],
            [
              "",
              "lerp"
            ],
            [
              "",
              "ease_out"
            ],
            [
              "",
              "fall_y"
            ],
            [
              "",
              "bounce_up_y"
            ],
            [
              "",
              "settle_y"
            ],
            [
              "",
              "height"
            ],
            [
              "",
              "lerp"
            ],
            [
              "",
              "ease_out"
            ],
            [
              "",
              "ease_out"
            ],
            [
              "",
              "lerp"
            ],
            [
              "",
              "ease_out"
            ],
            [
              "",
              "lerp"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "map"
            ],
            [
              "",
              "point"
            ],
            [
              "",
              "draw_triangle"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "map"
            ],
            [
              "",
              "point"
            ],
            [
              "",
              "each_with_index"
            ],
            [
              "",
              "size"
            ],
            [
              "",
              "draw_line"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "font"
            ],
            [
              "",
              "font"
            ],
            [
              "",
              "font"
            ],
            [
              "",
              "play"
            ],
            [
              "",
              "gem_sound"
            ],
            [
              "",
              "switch_scene"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "title_offset"
            ],
            [
              "",
              "draw"
            ],
            [
              "",
              "draw_centered"
            ],
            [
              "",
              "height"
            ],
            [
              "",
              "draw_powered_by"
            ],
            [
              "",
              "height"
            ],
            [
              "",
              "text_width"
            ],
            [
              "",
              "text_width"
            ],
            [
              "",
              "width"
            ],
            [
              "",
              "draw_text"
            ],
            [
              "",
              "draw_text"
            ],
            [
              "",
              "to_i"
            ],
            [
              "",
              "to_i"
            ],
            [
              "",
              "clamp"
            ],
            [
              "",
              "width"
            ],
            [
              "",
              "text_width"
            ],
            [
              "",
              "draw_text"
            ]
          ],
          "mbr": [
            "@gem.draw",
            "@gem.title_offset",
            "@gosu_font.draw_text",
            "@gosu_font.text_width",
            "@subtitle_font.draw_text",
            "@subtitle_font.text_width",
            "@window.height",
            "@window.switch_scene",
            "@window.width",
            "Assets.font",
            "Assets.gem_sound",
            "Assets.gem_sound.play",
            "FACETS.each",
            "Gosu.draw_line",
            "Gosu.draw_triangle",
            "Helpers.ease_out",
            "Helpers.lerp",
            "OUTLINE.map",
            "SplashGem.new",
            "font.draw_text",
            "font.text_width",
            "names.map",
            "points.each_with_index",
            "points.size"
          ],
          "tgt": [
            "bounce_up_y",
            "center_y",
            "clamp",
            "draw",
            "draw_centered",
            "draw_facet",
            "draw_line",
            "draw_outline",
            "draw_powered_by",
            "draw_text",
            "draw_triangle",
            "each",
            "each_with_index",
            "ease_out",
            "fall_y",
            "font",
            "freeze",
            "gem_sound",
            "height",
            "lerp",
            "map",
            "new",
            "play",
            "point",
            "settle_y",
            "size",
            "switch_scene",
            "text_width",
            "title_offset",
            "to_i",
            "width"
          ],
          "funcs": [
            [
              "initialize",
              1166
            ],
            [
              "draw",
              1243
            ],
            [
              "title_offset",
              1523
            ],
            [
              "center_y",
              1824
            ],
            [
              "impact_y",
              2167
            ],
            [
              "bottom_offset",
              2230
            ],
            [
              "rest_y",
              2295
            ],
            [
              "top_y",
              2334
            ],
            [
              "fall_y",
              2376
            ],
            [
              "bounce_up_y",
              2473
            ],
            [
              "settle_y",
              2646
            ],
            [
              "draw_facet",
              2823
            ],
            [
              "draw_outline",
              3116
            ],
            [
              "point",
              3518
            ],
            [
              "initialize",
              4079
            ],
            [
              "update",
              4525
            ],
            [
              "draw",
              4689
            ],
            [
              "draw_powered_by",
              5131
            ],
            [
              "fade_alpha",
              5552
            ],
            [
              "draw_centered",
              5911
            ]
          ],
          "metrics": {
            "ast": {
              "op.ge": 1,
              "op.lt": 7,
              "op.add": 19,
              "op.div": 13,
              "op.mod": 1,
              "op.mul": 5,
              "op.sub": 14,
              "max_depth": 16,
              "op.concat": 50,
              "call_count": 61,
              "node_count": 1477,
              "member_count": 24,
              "max_array_len": 5,
              "op_density.ge": 0,
              "op_density.lt": 0,
              "op_density.add": 0.01,
              "op_density.div": 0.01,
              "op_density.mod": 0,
              "op_density.mul": 0,
              "op_density.sub": 0.01,
              "max_concat_chain": 3,
              "member_depth_max": 3,
              "max_numeric_array": 3,
              "op_density.concat": 0.03
            },
            "file": {
              "size": 6100,
              "entropy": 4.64
            },
            "text": {
              "lines": 182,
              "top_char": 101,
              "max_ws_run": 1,
              "digit_ratio": 0.06,
              "space_count": 1958,
              "char_entropy": 4.64,
              "unique_chars": 89,
              "top_char_null": 0,
              "string_density": 0.07,
              "top_char_ratio": 0.06,
              "avg_line_length": 31.52,
              "max_line_length": 93,
              "non_ascii_ratio": 0,
              "empty_line_ratio": 0.18,
              "last_line_length": 3,
              "whitespace_ratio": 0.38,
              "identifier_density": 1.96,
              "line_length_stddev": 25.22,
              "normalized_string_count": 0.89,
              "repeated_char_sequences": 78,
              "suspicious_identifier_ratio": 0.06,
              "normalized_unique_identifiers": 13.45
            },
            "binds": {
              "count": 42
            },
            "binary": {
              "peak_region_bytes": 6100,
              "peak_region_entropy": 4.7
            },
            "source": {
              "class_count": 3,
              "function_count": 18
            },
            "strings": {
              "bytes": 142,
              "count": 12,
              "avg_length": 11.83,
              "max_length": 20,
              "avg_entropy": 2.99,
              "entropy_stddev": 0.64
            },
            "comments": {
              "chars": 505,
              "count": 10,
              "empty": 1,
              "lines": 10,
              "to_code_ratio": 0.06
            },
            "functions": {
              "count": 21
            },
            "identifiers": {
              "count": 357,
              "unique": 101,
              "avg_length": 6.79,
              "max_length": 15,
              "min_length": 1,
              "avg_entropy": 2.3,
              "reuse_ratio": 0.28,
              "length_stddev": 3.39,
              "sequential_names": 6,
              "single_char_count": 6,
              "single_char_ratio": 0.06,
              "high_entropy_count": 1,
              "high_entropy_ratio": 0.01,
              "all_lowercase_ratio": 0.67,
              "all_uppercase_ratio": 0.17
            }
          }
        },
        "id": 17,
        "path": "bestguigui_lab-0.13.0.gem!!data.tar.gz!!lib/bestguigui_lab/splash_scene.rb",
        "pid": 1,
        "risk": 1,
        "sha": "619889b28c0ae1600dddb85f27025e091e444ab9114a73c775f420d0bac1db33",
        "size": 6100,
        "traits": [
          {
            "id": "metadata/file/extension/token-shape::bare-alphanumeric-script-basename",
            "conf": 0.9,
            "crit": 2,
            "desc": "Script filename is a bare alphanumeric token"
          },
          {
            "id": "metadata/file/line::file-has-30-plus-lines",
            "conf": 0.9,
            "crit": 2,
            "desc": "File has 30 or more lines"
          },
          {
            "id": "metadata/lang/natural::lang-french--atom-2",
            "conf": 0.8,
            "crit": 1,
            "desc": "French function-word token \"avec\"",
            "spans": [
              [
                3782,
                0
              ]
            ]
          },
          {
            "id": "metadata/file/data-blob::low-overall-entropy-source",
            "conf": 0.9,
            "crit": 2,
            "desc": "Source file has low overall entropy"
          }
        ],
        "type": "ruby"
      },
      {
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "new"
            ],
            [
              "",
              "switch_scene"
            ],
            [
              "",
              "raise"
            ],
            [
              "",
              "inspect"
            ],
            [
              "",
              "milliseconds"
            ],
            [
              "",
              "milliseconds"
            ],
            [
              "",
              "update"
            ],
            [
              "",
              "milliseconds"
            ],
            [
              "",
              "draw"
            ],
            [
              "",
              "button_down"
            ]
          ],
          "mbr": [
            "@scene.button_down",
            "@scene.draw",
            "@scene.update",
            "Gosu.milliseconds",
            "SplashScene.new",
            "scene_type.inspect"
          ],
          "tgt": [
            "button_down",
            "draw",
            "inspect",
            "milliseconds",
            "new",
            "raise",
            "switch_scene",
            "update"
          ],
          "funcs": [
            [
              "initialize",
              580
            ],
            [
              "switch_scene",
              892
            ],
            [
              "update",
              1055
            ],
            [
              "draw",
              1266
            ],
            [
              "button_down",
              1324
            ]
          ],
          "metrics": {
            "ast": {
              "op.sub": 1,
              "max_depth": 13,
              "op.concat": 8,
              "call_count": 11,
              "node_count": 183,
              "member_count": 6,
              "op_density.sub": 0.01,
              "member_depth_max": 2,
              "op_density.concat": 0.04
            },
            "file": {
              "size": 1408,
              "entropy": 4.4
            },
            "text": {
              "lines": 41,
              "top_char": 101,
              "max_ws_run": 1,
              "digit_ratio": 0.02,
              "space_count": 378,
              "char_entropy": 4.4,
              "unique_chars": 66,
              "top_char_null": 0,
              "string_density": 0.02,
              "top_char_ratio": 0.1,
              "avg_line_length": 32.34,
              "max_line_length": 108,
              "non_ascii_ratio": 0.01,
              "empty_line_ratio": 0.12,
              "last_line_length": 3,
              "whitespace_ratio": 0.33,
              "identifier_density": 1.17,
              "line_length_stddev": 27.88,
              "normalized_string_count": 0.16,
              "repeated_char_sequences": 13,
              "suspicious_comment_ratio": 0.22,
              "normalized_unique_identifiers": 4.48
            },
            "binds": {
              "count": 4
            },
            "binary": {
              "peak_region_bytes": 1024,
              "peak_region_entropy": 4.52
            },
            "source": {
              "class_count": 2,
              "function_count": 5
            },
            "strings": {
              "bytes": 67,
              "count": 1,
              "avg_length": 67,
              "max_length": 67,
              "avg_entropy": 4.27
            },
            "comments": {
              "chars": 468,
              "count": 9,
              "empty": 1,
              "lines": 9,
              "high_entropy": 2,
              "to_code_ratio": 0.28
            },
            "functions": {
              "count": 7
            },
            "identifiers": {
              "count": 48,
              "unique": 24,
              "avg_length": 7.75,
              "max_length": 19,
              "min_length": 2,
              "avg_entropy": 2.45,
              "reuse_ratio": 0.5,
              "length_stddev": 4.11,
              "all_lowercase_ratio": 0.71
            }
          }
        },
        "id": 19,
        "path": "bestguigui_lab-0.13.0.gem!!data.tar.gz!!lib/bestguigui_lab/window.rb",
        "pid": 1,
        "risk": 1,
        "sha": "2a6c68e9e074d002be3fa57042316a6f806e7aed3ae1790f66c6984b82372bb6",
        "size": 1408,
        "traits": [
          {
            "id": "metadata/file/extension/token-shape::bare-alphanumeric-script-basename",
            "conf": 0.9,
            "crit": 2,
            "desc": "Script filename is a bare alphanumeric token"
          },
          {
            "id": "metadata/file/line::file-has-30-plus-lines",
            "conf": 0.9,
            "crit": 2,
            "desc": "File has 30 or more lines"
          },
          {
            "id": "metadata/lang/natural::lang-french--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "French function-word token \"dans\"",
            "spans": [
              [
                1010,
                0
              ]
            ]
          },
          {
            "id": "metadata/file/data-blob::low-overall-entropy-source",
            "conf": 0.9,
            "crit": 2,
            "desc": "Source file has low overall entropy"
          }
        ],
        "type": "ruby"
      },
      {
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 838,
              "entropy": 4.67
            },
            "binary": {
              "peak_region_bytes": 838,
              "peak_region_entropy": 4.67
            },
            "registry": {
              "age_days": 0,
              "published_at": 1789579213,
              "is_deprecated": 0,
              "downloads_total": 6760,
              "downloads_recent": 0
            }
          }
        },
        "id": 22,
        "mol": "O(S)Md(Re)",
        "path": "bestguigui_lab@0.13.0.registry.json",
        "pid": 0,
        "rel": "registry",
        "risk": 2,
        "role": "sidecar",
        "sha": "f34e62c934edc8f625665c2747030170663a40ed6ee38d3458794d0c6b808c49",
        "size": 838,
        "traits": [
          {
            "id": "metadata/registry::low-adoption",
            "conf": 1.0,
            "crit": 3,
            "desc": "Near-zero recent downloads for registry package"
          },
          {
            "id": "metadata/registry::freshly-published",
            "conf": 1.0,
            "crit": 3,
            "desc": "Release published within seven days"
          },
          {
            "id": "objectives/supply-chain/impersonation/registry/publish::freshly-published-unestablished-package",
            "conf": 0.7,
            "crit": 3,
            "desc": "Fresh low-adoption registry release",
            "uses": [
              0,
              1
            ]
          }
        ],
        "type": "registry"
      }
    ],
    "rev": "e86a6",
    "v": "8"
  }
}