{"adoption": {"forks": 246, "observed_at": "2026-09-01T02:14:06.563615+00:00", "stars": 1156}, "canonical_url": "https://ross.abutalabs.com/products/scalameta", "card": {"archived": false, "artifact_type": "library", "description": "Library to read, analyze, transform and generate Scala programs", "domain": ["parsers", "programming-languages", "developer-tools", "documentation"], "enriched": true, "function": ["parser", "serialization", "developer-tools", "documentation"], "health_score": 100, "homepage": "http://scalameta.org/", "language": "Scala", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "active", "member_repos": ["scalameta/scalameta"], "name": "scalameta/scalameta", "platform": ["jvm", "cross-platform"], "pushed_at": "2026-08-31T22:23:38+00:00", "repo": "scalameta/scalameta", "stars": 1156, "tags": ["scala", "syntax-trees", "metaprogramming", "semanticdb", "quasiquotes", "pretty-printer", "code-analysis"], "topics": ["scala", "metaprogramming", "parser", "pretty-printer", "syntactic", "semantic", "semanticdb"], "urls": [], "use_cases": ["parse scala source code into syntax trees", "build a scala code formatter or linter", "programmatically refactor scala code", "pretty-print scala syntax trees back to source", "build scala developer tools using semantic information", "pattern match and traverse scala ASTs", "generate scala code programmatically"], "what_it_is": "Scalameta is a Scala library for reading, analyzing, transforming, and generating Scala programs via lossless syntax trees and quasiquotes. It also provides SemanticDB, a protobuf-based data model for sharing semantic information (symbols and types) between developer tools.", "when_to_avoid": ["you work in a language other than Scala or Java", "you need runtime bytecode generation or macros rather than source-level metaprogramming", "you need full semantic type information for languages beyond Scala's partial Java support"], "when_to_choose": ["you need lossless syntax trees for Scala 2 or Scala 3", "you are building formatters, linters, refactoring or documentation tools for Scala", "you want a stable, documented alternative to Scala compiler internals for tooling", "you need quasiquotes for constructing or matching Scala code"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/scalameta", "repo": "scalameta/scalameta", "role": "main", "score": 98}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.563615+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:32:14.445875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f95f396ed73186aa690065487edd7f3bdefccc69ba1af7b28aefb824920041b", "fetched_at": "2026-09-01T02:14:06.563615+00:00", "kind": "readme", "missing": false, "url": "https://github.com/scalameta/scalameta"}, {"content_hash": "ae3a07f4edc71cb45325224afffb931382dff07ff4ea23912720cd89e90c0d1a", "fetched_at": "2026-08-29T12:37:37.493655+00:00", "kind": "homepage", "missing": false, "url": "http://scalameta.org/"}, {"content_hash": "7928323acf3426cc678fbfc734499874230b68da6974fd1f7464b99c111460eb", "fetched_at": "2026-08-29T12:37:37.496339+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/trees/guide"}, {"content_hash": "610a03319d6c3728ed6b50353f416009ee079e97ab8894f3217db85ef928cb95", "fetched_at": "2026-08-29T12:37:37.499718+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/semanticdb/guide"}, {"content_hash": "d80760fc9738919387b4f9e6768b0f1227c5b87afbfc7c5018ae55a8ff408d12", "fetched_at": "2026-08-29T12:37:37.501946+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/trees/quasiquotes"}, {"content_hash": "ec20883de884b946eb60c80e1449772a422d86c9d373f56cce7f9685310ec69b", "fetched_at": "2026-08-29T12:37:37.504118+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/semanticdb/specification"}, {"content_hash": "343e4669915a19db8802c06167c104b0ed4c9f6af9402ea2ead14de907bc62c6", "fetched_at": "2026-08-29T12:37:37.508019+00:00", "kind": "site_page", "missing": false, "url": "https://scalameta.org/mdoc"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.563615+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:32:14.445875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f95f396ed73186aa690065487edd7f3bdefccc69ba1af7b28aefb824920041b", "fetched_at": "2026-09-01T02:14:06.563615+00:00", "kind": "readme", "missing": false, "url": "https://github.com/scalameta/scalameta"}, {"content_hash": "ae3a07f4edc71cb45325224afffb931382dff07ff4ea23912720cd89e90c0d1a", "fetched_at": "2026-08-29T12:37:37.493655+00:00", "kind": "homepage", "missing": false, "url": "http://scalameta.org/"}, {"content_hash": "7928323acf3426cc678fbfc734499874230b68da6974fd1f7464b99c111460eb", "fetched_at": "2026-08-29T12:37:37.496339+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/trees/guide"}, {"content_hash": "610a03319d6c3728ed6b50353f416009ee079e97ab8894f3217db85ef928cb95", "fetched_at": "2026-08-29T12:37:37.499718+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/semanticdb/guide"}, {"content_hash": "d80760fc9738919387b4f9e6768b0f1227c5b87afbfc7c5018ae55a8ff408d12", "fetched_at": "2026-08-29T12:37:37.501946+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/trees/quasiquotes"}, {"content_hash": "ec20883de884b946eb60c80e1449772a422d86c9d373f56cce7f9685310ec69b", "fetched_at": "2026-08-29T12:37:37.504118+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/semanticdb/specification"}, {"content_hash": "343e4669915a19db8802c06167c104b0ed4c9f6af9402ea2ead14de907bc62c6", "fetched_at": "2026-08-29T12:37:37.508019+00:00", "kind": "site_page", "missing": false, "url": "https://scalameta.org/mdoc"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:32:14.445875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f95f396ed73186aa690065487edd7f3bdefccc69ba1af7b28aefb824920041b", "fetched_at": "2026-09-01T02:14:06.563615+00:00", "kind": "readme", "missing": false, "url": "https://github.com/scalameta/scalameta"}, {"content_hash": "ae3a07f4edc71cb45325224afffb931382dff07ff4ea23912720cd89e90c0d1a", "fetched_at": "2026-08-29T12:37:37.493655+00:00", "kind": "homepage", "missing": false, "url": "http://scalameta.org/"}, {"content_hash": "7928323acf3426cc678fbfc734499874230b68da6974fd1f7464b99c111460eb", "fetched_at": "2026-08-29T12:37:37.496339+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/trees/guide"}, {"content_hash": "610a03319d6c3728ed6b50353f416009ee079e97ab8894f3217db85ef928cb95", "fetched_at": "2026-08-29T12:37:37.499718+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/semanticdb/guide"}, {"content_hash": "d80760fc9738919387b4f9e6768b0f1227c5b87afbfc7c5018ae55a8ff408d12", "fetched_at": "2026-08-29T12:37:37.501946+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/trees/quasiquotes"}, {"content_hash": "ec20883de884b946eb60c80e1449772a422d86c9d373f56cce7f9685310ec69b", "fetched_at": "2026-08-29T12:37:37.504118+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/semanticdb/specification"}, {"content_hash": "343e4669915a19db8802c06167c104b0ed4c9f6af9402ea2ead14de907bc62c6", "fetched_at": "2026-08-29T12:37:37.508019+00:00", "kind": "site_page", "missing": false, "url": "https://scalameta.org/mdoc"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.563615+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.563615+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.563615+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:32:14.445875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f95f396ed73186aa690065487edd7f3bdefccc69ba1af7b28aefb824920041b", "fetched_at": "2026-09-01T02:14:06.563615+00:00", "kind": "readme", "missing": false, "url": "https://github.com/scalameta/scalameta"}, {"content_hash": "ae3a07f4edc71cb45325224afffb931382dff07ff4ea23912720cd89e90c0d1a", "fetched_at": "2026-08-29T12:37:37.493655+00:00", "kind": "homepage", "missing": false, "url": "http://scalameta.org/"}, {"content_hash": "7928323acf3426cc678fbfc734499874230b68da6974fd1f7464b99c111460eb", "fetched_at": "2026-08-29T12:37:37.496339+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/trees/guide"}, {"content_hash": "610a03319d6c3728ed6b50353f416009ee079e97ab8894f3217db85ef928cb95", "fetched_at": "2026-08-29T12:37:37.499718+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/semanticdb/guide"}, {"content_hash": "d80760fc9738919387b4f9e6768b0f1227c5b87afbfc7c5018ae55a8ff408d12", "fetched_at": "2026-08-29T12:37:37.501946+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/trees/quasiquotes"}, {"content_hash": "ec20883de884b946eb60c80e1449772a422d86c9d373f56cce7f9685310ec69b", "fetched_at": "2026-08-29T12:37:37.504118+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/semanticdb/specification"}, {"content_hash": "343e4669915a19db8802c06167c104b0ed4c9f6af9402ea2ead14de907bc62c6", "fetched_at": "2026-08-29T12:37:37.508019+00:00", "kind": "site_page", "missing": false, "url": "https://scalameta.org/mdoc"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.563615+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.563615+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:32:14.445875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f95f396ed73186aa690065487edd7f3bdefccc69ba1af7b28aefb824920041b", "fetched_at": "2026-09-01T02:14:06.563615+00:00", "kind": "readme", "missing": false, "url": "https://github.com/scalameta/scalameta"}, {"content_hash": "ae3a07f4edc71cb45325224afffb931382dff07ff4ea23912720cd89e90c0d1a", "fetched_at": "2026-08-29T12:37:37.493655+00:00", "kind": "homepage", "missing": false, "url": "http://scalameta.org/"}, {"content_hash": "7928323acf3426cc678fbfc734499874230b68da6974fd1f7464b99c111460eb", "fetched_at": "2026-08-29T12:37:37.496339+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/trees/guide"}, {"content_hash": "610a03319d6c3728ed6b50353f416009ee079e97ab8894f3217db85ef928cb95", "fetched_at": "2026-08-29T12:37:37.499718+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/semanticdb/guide"}, {"content_hash": "d80760fc9738919387b4f9e6768b0f1227c5b87afbfc7c5018ae55a8ff408d12", "fetched_at": "2026-08-29T12:37:37.501946+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/trees/quasiquotes"}, {"content_hash": "ec20883de884b946eb60c80e1449772a422d86c9d373f56cce7f9685310ec69b", "fetched_at": "2026-08-29T12:37:37.504118+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/semanticdb/specification"}, {"content_hash": "343e4669915a19db8802c06167c104b0ed4c9f6af9402ea2ead14de907bc62c6", "fetched_at": "2026-08-29T12:37:37.508019+00:00", "kind": "site_page", "missing": false, "url": "https://scalameta.org/mdoc"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.563615+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.563615+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.563615+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:32:14.445875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f95f396ed73186aa690065487edd7f3bdefccc69ba1af7b28aefb824920041b", "fetched_at": "2026-09-01T02:14:06.563615+00:00", "kind": "readme", "missing": false, "url": "https://github.com/scalameta/scalameta"}, {"content_hash": "ae3a07f4edc71cb45325224afffb931382dff07ff4ea23912720cd89e90c0d1a", "fetched_at": "2026-08-29T12:37:37.493655+00:00", "kind": "homepage", "missing": false, "url": "http://scalameta.org/"}, {"content_hash": "7928323acf3426cc678fbfc734499874230b68da6974fd1f7464b99c111460eb", "fetched_at": "2026-08-29T12:37:37.496339+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/trees/guide"}, {"content_hash": "610a03319d6c3728ed6b50353f416009ee079e97ab8894f3217db85ef928cb95", "fetched_at": "2026-08-29T12:37:37.499718+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/semanticdb/guide"}, {"content_hash": "d80760fc9738919387b4f9e6768b0f1227c5b87afbfc7c5018ae55a8ff408d12", "fetched_at": "2026-08-29T12:37:37.501946+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/trees/quasiquotes"}, {"content_hash": "ec20883de884b946eb60c80e1449772a422d86c9d373f56cce7f9685310ec69b", "fetched_at": "2026-08-29T12:37:37.504118+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/semanticdb/specification"}, {"content_hash": "343e4669915a19db8802c06167c104b0ed4c9f6af9402ea2ead14de907bc62c6", "fetched_at": "2026-08-29T12:37:37.508019+00:00", "kind": "site_page", "missing": false, "url": "https://scalameta.org/mdoc"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.563615+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.563615+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:32:14.445875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f95f396ed73186aa690065487edd7f3bdefccc69ba1af7b28aefb824920041b", "fetched_at": "2026-09-01T02:14:06.563615+00:00", "kind": "readme", "missing": false, "url": "https://github.com/scalameta/scalameta"}, {"content_hash": "ae3a07f4edc71cb45325224afffb931382dff07ff4ea23912720cd89e90c0d1a", "fetched_at": "2026-08-29T12:37:37.493655+00:00", "kind": "homepage", "missing": false, "url": "http://scalameta.org/"}, {"content_hash": "7928323acf3426cc678fbfc734499874230b68da6974fd1f7464b99c111460eb", "fetched_at": "2026-08-29T12:37:37.496339+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/trees/guide"}, {"content_hash": "610a03319d6c3728ed6b50353f416009ee079e97ab8894f3217db85ef928cb95", "fetched_at": "2026-08-29T12:37:37.499718+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/semanticdb/guide"}, {"content_hash": "d80760fc9738919387b4f9e6768b0f1227c5b87afbfc7c5018ae55a8ff408d12", "fetched_at": "2026-08-29T12:37:37.501946+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/trees/quasiquotes"}, {"content_hash": "ec20883de884b946eb60c80e1449772a422d86c9d373f56cce7f9685310ec69b", "fetched_at": "2026-08-29T12:37:37.504118+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/semanticdb/specification"}, {"content_hash": "343e4669915a19db8802c06167c104b0ed4c9f6af9402ea2ead14de907bc62c6", "fetched_at": "2026-08-29T12:37:37.508019+00:00", "kind": "site_page", "missing": false, "url": "https://scalameta.org/mdoc"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:32:14.445875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f95f396ed73186aa690065487edd7f3bdefccc69ba1af7b28aefb824920041b", "fetched_at": "2026-09-01T02:14:06.563615+00:00", "kind": "readme", "missing": false, "url": "https://github.com/scalameta/scalameta"}, {"content_hash": "ae3a07f4edc71cb45325224afffb931382dff07ff4ea23912720cd89e90c0d1a", "fetched_at": "2026-08-29T12:37:37.493655+00:00", "kind": "homepage", "missing": false, "url": "http://scalameta.org/"}, {"content_hash": "7928323acf3426cc678fbfc734499874230b68da6974fd1f7464b99c111460eb", "fetched_at": "2026-08-29T12:37:37.496339+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/trees/guide"}, {"content_hash": "610a03319d6c3728ed6b50353f416009ee079e97ab8894f3217db85ef928cb95", "fetched_at": "2026-08-29T12:37:37.499718+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/semanticdb/guide"}, {"content_hash": "d80760fc9738919387b4f9e6768b0f1227c5b87afbfc7c5018ae55a8ff408d12", "fetched_at": "2026-08-29T12:37:37.501946+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/trees/quasiquotes"}, {"content_hash": "ec20883de884b946eb60c80e1449772a422d86c9d373f56cce7f9685310ec69b", "fetched_at": "2026-08-29T12:37:37.504118+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/semanticdb/specification"}, {"content_hash": "343e4669915a19db8802c06167c104b0ed4c9f6af9402ea2ead14de907bc62c6", "fetched_at": "2026-08-29T12:37:37.508019+00:00", "kind": "site_page", "missing": false, "url": "https://scalameta.org/mdoc"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:32:14.445875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f95f396ed73186aa690065487edd7f3bdefccc69ba1af7b28aefb824920041b", "fetched_at": "2026-09-01T02:14:06.563615+00:00", "kind": "readme", "missing": false, "url": "https://github.com/scalameta/scalameta"}, {"content_hash": "ae3a07f4edc71cb45325224afffb931382dff07ff4ea23912720cd89e90c0d1a", "fetched_at": "2026-08-29T12:37:37.493655+00:00", "kind": "homepage", "missing": false, "url": "http://scalameta.org/"}, {"content_hash": "7928323acf3426cc678fbfc734499874230b68da6974fd1f7464b99c111460eb", "fetched_at": "2026-08-29T12:37:37.496339+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/trees/guide"}, {"content_hash": "610a03319d6c3728ed6b50353f416009ee079e97ab8894f3217db85ef928cb95", "fetched_at": "2026-08-29T12:37:37.499718+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/semanticdb/guide"}, {"content_hash": "d80760fc9738919387b4f9e6768b0f1227c5b87afbfc7c5018ae55a8ff408d12", "fetched_at": "2026-08-29T12:37:37.501946+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/trees/quasiquotes"}, {"content_hash": "ec20883de884b946eb60c80e1449772a422d86c9d373f56cce7f9685310ec69b", "fetched_at": "2026-08-29T12:37:37.504118+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/semanticdb/specification"}, {"content_hash": "343e4669915a19db8802c06167c104b0ed4c9f6af9402ea2ead14de907bc62c6", "fetched_at": "2026-08-29T12:37:37.508019+00:00", "kind": "site_page", "missing": false, "url": "https://scalameta.org/mdoc"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:32:14.445875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f95f396ed73186aa690065487edd7f3bdefccc69ba1af7b28aefb824920041b", "fetched_at": "2026-09-01T02:14:06.563615+00:00", "kind": "readme", "missing": false, "url": "https://github.com/scalameta/scalameta"}, {"content_hash": "ae3a07f4edc71cb45325224afffb931382dff07ff4ea23912720cd89e90c0d1a", "fetched_at": "2026-08-29T12:37:37.493655+00:00", "kind": "homepage", "missing": false, "url": "http://scalameta.org/"}, {"content_hash": "7928323acf3426cc678fbfc734499874230b68da6974fd1f7464b99c111460eb", "fetched_at": "2026-08-29T12:37:37.496339+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/trees/guide"}, {"content_hash": "610a03319d6c3728ed6b50353f416009ee079e97ab8894f3217db85ef928cb95", "fetched_at": "2026-08-29T12:37:37.499718+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/semanticdb/guide"}, {"content_hash": "d80760fc9738919387b4f9e6768b0f1227c5b87afbfc7c5018ae55a8ff408d12", "fetched_at": "2026-08-29T12:37:37.501946+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/trees/quasiquotes"}, {"content_hash": "ec20883de884b946eb60c80e1449772a422d86c9d373f56cce7f9685310ec69b", "fetched_at": "2026-08-29T12:37:37.504118+00:00", "kind": "site_page", "missing": false, "url": "http://scalameta.org/docs/semanticdb/specification"}, {"content_hash": "343e4669915a19db8802c06167c104b0ed4c9f6af9402ea2ead14de907bc62c6", "fetched_at": "2026-08-29T12:37:37.508019+00:00", "kind": "site_page", "missing": false, "url": "https://scalameta.org/mdoc"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 100, "longevity": 100, "rhythm": 94}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4461, "days_push": 2, "days_rel": 41, "gap_med": 11, "n_releases_24m": 44}, "score": 98, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 5, "stale_scrape": false}}