{
  "ml": {
    "v": "7",
    "eng": "2.8.0",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.000020037094,
        "rte": "az",
        "prob": 0.000020037094
      },
      {
        "cls": 0,
        "raw": 0.0000975728,
        "rte": "az/crate",
        "prob": 0.0000975728
      }
    ],
    "prob": 0.000020037094,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000020037094145664014,
        "type": "crate"
      },
      {
        "id": 1,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013262033462524414,
        "type": "cargo.toml"
      },
      {
        "id": 2,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000015219052329484839,
        "type": "rust"
      },
      {
        "id": 4,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013689200386579614,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-07T04:47:03Z"
  },
  "path": "sc-chain-spec-derive-2.0.0.crate",
  "raw": {
    "files": [
      {
        "id": 0,
        "ctx": [
          {
            "b": "abZyg000000@)sKeN@E5x(kIzAaJJhwmY^}C4AlXe?![ie[n{gBy+Ett5wumnd%iH]EBKEIBZ}]Z\u0026d[\u00269Q:PX{pw?Wt@GB0rltwh44%]M5rgj\u0026I#zLpYjZ=MI\u003eaW\u0026/$b%w9@}pjDB!DH}GVm%]Y\u003eq=",
            "ln": 0
          }
        ],
        "mol": "H₂(DbOs)",
        "sha": "38af2ca789e2d2fa2aa0ec16d27dc648fa4d64ecb10760d2f552b2c86ea7a403",
        "path": "sc-chain-spec-derive-2.0.0.crate",
        "risk": 2,
        "size": 3219,
        "type": "crate",
        "facts": {
          "metrics": {
            "file": {
              "size": 3219,
              "entropy": 7.93
            },
            "parse": {
              "error_count": 1
            },
            "binary": {
              "peak_region_bytes": 3072,
              "peak_region_entropy": 7.78
            }
          }
        },
        "ident": {
          "name": {
            "value": "sc-chain-spec-derive",
            "source": "crate.name",
            "verified": false
          },
          "urls": [
            {
              "url": "https://github.com/paritytech/substrate/",
              "kind": "repository",
              "source": "crate.repository"
            },
            {
              "url": "https://substrate.dev",
              "kind": "homepage",
              "source": "crate.homepage"
            }
          ],
          "trust": "unsigned",
          "emails": [
            "admin@parity.io"
          ],
          "authors": [
            {
              "name": "Parity Technologies",
              "role": "author",
              "email": "admin@parity.io",
              "source": "crate.authors"
            }
          ],
          "version": {
            "value": "2.0.0",
            "source": "crate.version",
            "verified": false
          },
          "identifier": {
            "value": "sc-chain-spec-derive",
            "source": "crate.name",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "micro-behaviors/data/string/replace::rust-string-replacement-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Rust replaces matched string content",
            "from": [
              {
                "file": 2
              }
            ]
          },
          {
            "id": "metadata/package/manifest/name::cargo-license-field",
            "conf": 0.85,
            "crit": 2,
            "desc": "Cargo package declares license"
          },
          {
            "id": "metadata/package/manifest/name::cargo-package-version",
            "conf": 0.85,
            "crit": 2,
            "desc": "Cargo package has version"
          },
          {
            "id": "metadata/package/manifest/name::cargo-package-name",
            "conf": 0.85,
            "crit": 2,
            "desc": "Cargo package has name"
          },
          {
            "id": "micro-behaviors/os/env/access::std-env-var",
            "conf": 0.86,
            "crit": 3,
            "desc": "Reads a Rust environment variable",
            "from": [
              {
                "file": 2
              }
            ]
          },
          {
            "id": "metadata/package/manifest/name::cargo-meaningful-description",
            "conf": 0.78,
            "crit": 2,
            "desc": "Cargo package has meaningful description"
          },
          {
            "id": "metadata/package/manifest/name::cargo-repository-field",
            "conf": 0.85,
            "crit": 2,
            "desc": "Cargo package declares repository"
          }
        ]
      },
      {
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 1143,
              "entropy": 5.05
            },
            "binary": {
              "peak_region_bytes": 1024,
              "peak_region_entropy": 5.04
            }
          }
        },
        "id": 1,
        "path": "sc-chain-spec-derive-2.0.0.crate!!sc-chain-spec-derive-2.0.0/Cargo.toml",
        "pid": 0,
        "refs": [
          {
            "to": "pkg:github/paritytech/substrate",
            "off": 836,
            "kind": "repository"
          }
        ],
        "risk": 1,
        "sha": "b6cb36be341a51008ad60e0cbec09ef9a8be1a30aa4970e9087a4d6f404c8ad1",
        "size": 1143,
        "traits": [
          {
            "id": "metadata/package/manifest/name::cargo-conventional-version",
            "conf": 0.85,
            "crit": 2,
            "desc": "Cargo package uses conventional version"
          },
          {
            "id": "metadata/package/manifest/name::cargo-lib-proc-macro",
            "conf": 0.85,
            "crit": 2,
            "desc": "Cargo library is proc macro"
          },
          {
            "id": "metadata/package/manifest/name::cargo-license-field",
            "conf": 0.85,
            "crit": 2,
            "desc": "Cargo package declares license"
          },
          {
            "id": "metadata/package/manifest/name::cargo-meaningful-description",
            "conf": 0.78,
            "crit": 2,
            "desc": "Cargo package has meaningful description"
          },
          {
            "id": "metadata/package/manifest/name::cargo-package-name",
            "conf": 0.85,
            "crit": 2,
            "desc": "Cargo package has name"
          },
          {
            "id": "metadata/package/manifest/name::cargo-package-version",
            "conf": 0.85,
            "crit": 2,
            "desc": "Cargo package has version"
          },
          {
            "id": "metadata/package/manifest/name::cargo-repository-field",
            "conf": 0.85,
            "crit": 2,
            "desc": "Cargo package declares repository"
          },
          {
            "id": "metadata/package/manifest/name::cargo-package-quality-metadata",
            "conf": 0.88,
            "crit": 2,
            "desc": "Cargo manifest includes core project metadata",
            "uses": [
              2,
              3,
              4,
              5,
              6
            ]
          }
        ],
        "type": "cargo.toml"
      },
      {
        "ctx": [
          {
            "b": "x\u003eIa3atLS9iw00ugb6?Evrc77C{36$v}Y:#y\u0026r%2wPF$xrza+-oMT!$3nj4Pra]#!azbt7wGUYdaAg+fBrCHlax9z(B98ChBy^6i3nj4Pq/#L\u003cBAg/iwGUYdazbU9wGV5jw]@l9A+doOD2E*Fv{%l$A+e=}B98CpvS=^7azC{uvqYQez/M$qz!9M]C)VhTazC{uB-7-3AV/EqwGV8aA=2\u003euz!pblxK@qRpe@AbwO#71vqE5.BZ/f3v\u003c1DVv}xL0wGUA5aAhEjy?W%7wN(])C)VhTaARpdavZx.wGT]\u0026w]@l9A+cv.z/]@dvruj4zy=]wx([31AV/KpA=U@kzxH.Tz!pblxK@qWx\u003e7Z(B7D)Bz/MgrfczVKBrC\u003cEBP",
            "ln": 8,
            "col": 9,
            "line": 1
          },
          {
            "b": "A=U@kzy#n6fe1CDBZ/AlA::63azC)twncabA+P09By!#9x(k5nxK@r1z/xngBzb98azC{uCwg(fayX[8B-RbaB.\u0026Pofe1CSB-X:cnMnkRrA78bpfwYvk#HPDpe\u003evTaA}KwxM53naz2.czxK4mwGUY7Abol1wfu88A=LPaBA]0Ew^QgAawCp5lR6Hrr6-\u0026xoI5h^aA8oymOcMOmn)bcmO=]8k{e#\u0026qDcjPrzkXRaw=6op!$1Ue*8onwO00axK}J7fcA+WruK!yzE)\u0026%y-(L%vR/:*awuGVwO#N2azbLjaz(4qwGUI{Byw)1B1N!bfe1CJz/)gzxM53fwftL]C4z!pwN/p=C4Chbvix5#AcSNAw/#hewGTGrruK!yzE)\u0026%y-(L%vR/:*awuGVwO#N23nj4PvqG\u003e1xcqzjBz8^}BZ/AlA::63e*8odw/$#fBsXLQwN##DxMOuniXJdgCxUVLzGNNIA+v4wx\u003e7Z(B7GzCj$WfHB-RapAb](buU%jYA=iY]i^T!AvqWRsrbVL-zC$T$wNPC7i%\u003e",
            "ln": 331,
            "col": 33,
            "line": 7
          },
          {
            "b": "v{:7Yv@=G{v@=11wJz\u003eZA::63uV6p?wHF:zwPzr)a$jTY3jd1BpIRv@vqPN8au.[hnN#yIBuhE2wP]KHzEEx[e]\u003eJxy***+c)yk!efDcza$k5=q/De.iYZ+Vy\u00260E1x()]mdjD!P2)*]bA=JNtdiH=qaBsC42)*]OwPP5aA=Jo=avQr\u003ez/N)1zE[2u3jd1B2)\u003cKHvqXa!v{%g\u0026uVP}6wHF#U3jd1B2)?}\u003cz/PY6BrJ4RlVm9-wft=dBrCgfzE:\u003e$",
            "ln": 2938,
            "col": 35,
            "line": 77
          },
          {
            "b": "k$%=%aBsC42#ts+v}Yp+zEmE7wN/7+vqPN8au.[hv}Yp+zEmE7wN/7+vqPNb3jd2cA=JNtdiH=qazCBgB97}Ni+rhLiY.B)AWSb0k#HiGuR\u003cx=uRS)YmiTfkwQ5f9v@%a}qCQ7TdiH=pavx3)r7gd?k$%=\u003cDKp5=2})}OCv.[qwPS6nzxK4mwGU(0zdK\u0026dw/#hewGUG6vru66xK#i}azC.mBy!(\u003eaA7\u003cmu$jj=By!\u00265Bz\u0026pyB-qqrA=-Bmz^%]iwPI%me^.)\u003e2$4PRr7gd?k$%^2A+fiavpJ\u003c%a$T#\u0026ar\u003eepdgcv/Eir9qB7DFv3jd1By?mYhwPz/ljS)glA=k$Vi=nIMc@U7[zAo**vqG:!B7]-cc[cX\u0026cs[RUBz\u003eI@z/6Dcy?l%+A=M8sc[dj+2)*]UwPS6nzxJ}wz//Llc)f:CA=JoKe[]iBzZW4w2)(2h3jha",
            "ln": 4729,
            "col": 43,
            "line": 154
          },
          {
            "b": "wO+)#e]C9mwN)AcBy/Fvdk2jGvrt\u003c[vq)SxCZHSUe[[\u003cczGEHtB6\u0026%0w*/8Se[n*oy?m9#iYYx7wN^\u0026fk0ywzi%(pgwPP5bx\u003eq9\u003euVZNjwPF$Sazbt0y?dPtzEEx[wg?OrwPxgFe]t3od13n!asqs=BA]q/v@Dg1wN/*yiY{COv)19Zj$4\u003cw3jm8IwPzHd",
            "ln": 5173,
            "col": 22,
            "line": 165
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "derive"
            ],
            [
              "",
              "generics.split_for_impl"
            ],
            [
              "",
              "fields.named.iter.find_map.unwrap_or_else"
            ],
            [
              "",
              "fields.named.iter.find_map"
            ],
            [
              "",
              "fields.named.iter"
            ],
            [
              "",
              "f.attrs.iter.any"
            ],
            [
              "",
              "f.attrs.iter"
            ],
            [
              "",
              "attr.path.is_ident"
            ],
            [
              "",
              "Some"
            ],
            [
              "",
              "derive"
            ],
            [
              "",
              "generics.split_for_impl"
            ],
            [
              "",
              "syn::Ident::new"
            ],
            [
              "",
              "proc_macro2::Span::call_site"
            ],
            [
              "",
              "generate_fork_fields"
            ],
            [
              "",
              "generate_base_to_fork"
            ],
            [
              "",
              "generate_combine_with"
            ],
            [
              "",
              "generate_fork_to_base"
            ],
            [
              "",
              "proc_macro_crate::crate_name"
            ],
            [
              "",
              "syn::Ident::new"
            ],
            [
              "",
              "name.replace"
            ],
            [
              "",
              "proc_macro2::Span::call_site"
            ],
            [
              "",
              "syn::Error::new.to_compile_error"
            ],
            [
              "",
              "syn::Error::new"
            ],
            [
              "",
              "proc_macro2::Span::call_site"
            ],
            [
              "",
              "syn::Error::new.to_compile_error"
            ],
            [
              "",
              "syn::Error::new"
            ],
            [
              "",
              "proc_macro2::Span::call_site"
            ],
            [
              "",
              "err"
            ],
            [
              "",
              "err"
            ],
            [
              "",
              "proc_macro_crate::crate_name"
            ],
            [
              "",
              "std::env::var.expect"
            ],
            [
              "",
              "std::env::var"
            ],
            [
              "",
              "CRATE_NAME.replace"
            ],
            [
              "",
              "syn::Error::new.to_compile_error"
            ],
            [
              "",
              "syn::Error::new"
            ],
            [
              "",
              "proc_macro2::Span::call_site"
            ],
            [
              "",
              "syn::Ident::new"
            ],
            [
              "",
              "proc_macro2::Span::call_site"
            ],
            [
              "",
              "fields.named.iter.flat_map"
            ],
            [
              "",
              "fields.named.iter"
            ],
            [
              "",
              "x.ident.as_ref"
            ],
            [
              "",
              "fields.named.iter.map"
            ],
            [
              "",
              "fields.named.iter"
            ],
            [
              "",
              "derive.into"
            ],
            [
              "",
              "derive"
            ],
            [
              "",
              "std::iter::repeat"
            ],
            [
              "",
              "names.to_vec"
            ],
            [
              "",
              "names.to_vec"
            ],
            [
              "",
              "names.to_vec"
            ],
            [
              "",
              "proc_macro2::Span"
            ],
            [
              "",
              "proc_macro2::TokenStream"
            ],
            [
              "",
              "quote::quote"
            ],
            [
              "",
              "syn::DeriveInput"
            ],
            [
              "",
              "syn::Ident"
            ],
            [
              "",
              "syn::Error"
            ],
            [
              "",
              "proc_macro_crate::crate_name"
            ]
          ],
          "mbr": [
            "CRATE_NAME.replace",
            "Error::new.to_compile_error",
            "ast.data",
            "ast.generics",
            "ast.ident",
            "attr.path",
            "attr.path.is_ident",
            "data.fields",
            "derive.into",
            "f.attrs",
            "f.attrs.iter",
            "f.attrs.iter.any",
            "f.ty",
            "fields.named",
            "fields.named.iter",
            "fields.named.iter.find_map",
            "fields.named.iter.find_map.unwrap_or_else",
            "fields.named.iter.flat_map",
            "fields.named.iter.flat_map.collect",
            "fields.named.iter.map",
            "fields.named.iter.map.collect",
            "generics.split_for_impl",
            "name.replace",
            "names.to_vec",
            "std::env::var.expect",
            "x.ident",
            "x.ident.as_ref",
            "x.ty"
          ],
          "tgt": [
            "CRATE_NAME.replace",
            "Some",
            "attr.path.is_ident",
            "derive",
            "derive.into",
            "err",
            "f.attrs.iter",
            "f.attrs.iter.any",
            "fields.named.iter",
            "fields.named.iter.find_map",
            "fields.named.iter.find_map.unwrap_or_else",
            "fields.named.iter.flat_map",
            "fields.named.iter.map",
            "generate_base_to_fork",
            "generate_combine_with",
            "generate_fork_fields",
            "generate_fork_to_base",
            "generics.split_for_impl",
            "name.replace",
            "names.to_vec",
            "proc_macro2::Span::call_site",
            "proc_macro_crate::crate_name",
            "std::env::var",
            "std::env::var.expect",
            "std::iter::repeat",
            "syn::Error::new",
            "syn::Error::new.to_compile_error",
            "syn::Ident::new",
            "x.ident.as_ref"
          ],
          "funcs": [
            [
              "extension_derive",
              1129
            ],
            [
              "group_derive",
              2322
            ],
            [
              "derive",
              4021
            ],
            [
              "generate_fork_fields",
              5405
            ],
            [
              "generate_base_to_fork",
              5643
            ],
            [
              "generate_combine_with",
              5839
            ],
            [
              "generate_fork_to_base",
              5998
            ]
          ],
          "metrics": {
            "ast": {
              "op.eq": 1,
              "max_depth": 22,
              "call_count": 54,
              "node_count": 1849,
              "member_count": 28,
              "op_density.eq": 0,
              "member_depth_max": 5
            },
            "file": {
              "size": 6185,
              "entropy": 5.22
            },
            "text": {
              "lines": 216,
              "top_char": 101,
              "tab_count": 377,
              "max_ws_run": 2,
              "digit_ratio": 0,
              "space_count": 531,
              "char_entropy": 5.22,
              "unique_chars": 80,
              "top_char_null": 0,
              "string_density": 0.06,
              "top_char_ratio": 0.1,
              "avg_line_length": 27.63,
              "max_line_length": 97,
              "empty_line_ratio": 0.15,
              "last_line_length": 1,
              "whitespace_ratio": 0.18,
              "identifier_density": 1.87,
              "line_length_stddev": 27.04,
              "normalized_string_count": 0.82,
              "suspicious_string_ratio": 0.08,
              "suspicious_comment_ratio": 0.13,
              "suspicious_identifier_ratio": 0.04,
              "normalized_unique_identifiers": 14.83
            },
            "binds": {
              "count": 23
            },
            "binary": {
              "peak_region_bytes": 6144,
              "peak_region_entropy": 5.16
            },
            "source": {
              "function_count": 7
            },
            "imports": {
              "count": 7,
              "third_party_count": 7,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 191,
              "count": 12,
              "shell": 1,
              "avg_length": 15.92,
              "max_length": 63,
              "avg_entropy": 2.19,
              "entropy_stddev": 1.73
            },
            "comments": {
              "chars": 867,
              "count": 16,
              "lines": 16,
              "high_entropy": 2,
              "to_code_ratio": 0.08,
              "url_in_comments": 1
            },
            "functions": {
              "count": 7,
              "density": 3.24,
              "avg_params": 1.71,
              "code_ratio": 0.84,
              "max_params": 3,
              "length_stddev": 18.53,
              "avg_name_length": 16.71,
              "avg_length_lines": 25.86,
              "max_length_lines": 59,
              "min_length_lines": 9,
              "high_entropy_names": 2,
              "avg_param_name_length": 5.25
            },
            "identifiers": {
              "count": 404,
              "unique": 115,
              "avg_length": 7.14,
              "max_length": 21,
              "min_length": 1,
              "avg_entropy": 2.3,
              "reuse_ratio": 0.28,
              "length_stddev": 4.69,
              "has_digit_ratio": 0.02,
              "sequential_names": 5,
              "single_char_count": 6,
              "single_char_ratio": 0.05,
              "high_entropy_count": 4,
              "high_entropy_ratio": 0.03,
              "all_lowercase_ratio": 0.65,
              "all_uppercase_ratio": 0.04,
              "numeric_suffix_count": 2,
              "underscore_prefix_count": 2
            }
          }
        },
        "id": 2,
        "mol": "H₂(DbOs)",
        "path": "sc-chain-spec-derive-2.0.0.crate!!sc-chain-spec-derive-2.0.0/src/impls.rs",
        "pid": 3741,
        "risk": 2,
        "sha": "690f3005d6b8e3a0f4472a8e98cf03fc2bc6a35d289f01889a0464fd894624fc",
        "size": 6185,
        "traits": [
          {
            "id": "metadata/file/comment::source-comment-bytes-over-300",
            "conf": 0.92,
            "crit": 2,
            "desc": "Source has over 300 comment bytes"
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"the\"",
            "spans": [
              [
                170,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-2",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"and\"",
            "spans": [
              [
                144,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-3",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"that\"",
            "spans": [
              [
                379,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-4",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"have\"",
            "spans": [
              [
                597,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-5",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"for\"",
            "spans": [
              [
                499,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-6",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"with\"",
            "spans": [
              [
                661,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-7",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"this\"",
            "spans": [
              [
                56,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/string/replace::rust-string-replacement-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Rust replaces matched string content",
            "spans": [
              [
                3002,
                12
              ],
              [
                4942,
                18
              ]
            ]
          },
          {
            "id": "micro-behaviors/os/env/read::std-env-var",
            "conf": 0.86,
            "crit": 3,
            "desc": "Reads a Rust environment variable",
            "spans": [
              [
                4793,
                14
              ]
            ]
          }
        ],
        "type": "rust"
      },
      {
        "ctx": [
          {
            "b": "DM)3hz/ZhBBy/qkiWe6Ovru74a$K{QvqPN1iWeSPeN@E5x(kIzAaJJhwmY^}C4z\u003cGb6EKrB7]Mgb03]6e?![ia$K{SBZ/f3B7/b}uTX42iX-JDfGp:uhzD)pb4ka}uJ",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 944,
              "entropy": 4.81
            },
            "binary": {
              "peak_region_bytes": 944,
              "peak_region_entropy": 4.81
            },
            "registry": {
              "age_days": 2175,
              "published_at": 1600800610,
              "is_deprecated": 0,
              "downloads_total": 1672245,
              "downloads_recent": 393515
            }
          }
        },
        "id": 4,
        "path": "sc-chain-spec-derive@2.0.0.registry.json",
        "pid": 0,
        "rel": "registry",
        "role": "sidecar",
        "sha": "41b043143f35bca49292eeec7ec5d2537156d1ef6a80cd2d64bf52f952f469dd",
        "size": 944,
        "traits": [
          {
            "id": "metadata/registry::widely-installed",
            "conf": 1.0,
            "crit": 1,
            "desc": "Large registry install base (10k+ downloads)",
            "spans": [
              [
                0,
                0
              ]
            ]
          }
        ],
        "type": "registry"
      }
    ],
    "rev": "479f3",
    "v": "8"
  }
}