{
  "schemaVersion": 1,
  "title": "AB-NASA-TEAM-IPE — arquitetura verificável",
  "generatedAt": "2026-11-14T13:35:19.813Z",
  "language": "pt-BR",
  "projectStatus": "BETA de P&D; release planejado para 15/11/2026 08:00 America/Sao_Paulo",
  "provenance": {
    "codeBaseCommit": "3d6e8e9bd8dcb1618e00c6fc7ace181141cb4aaf",
    "codeBaseRemote": null,
    "publicationRepository": "https://github.com/oalexandrebelo/AB-NASA-TEAM-IPE",
    "localProvenance": "Git blob dos arquivos locais comparado à base fixada R5; SHA-256 adicional por arquivo. O histórico local é preservado em bundle; commits criados pela API têm metadados próprios. Não há promessa de identidade com um commit futuro.",
    "archify": {
      "repository": "https://github.com/tt-a1i/archify",
      "commit": "e37848822238e3a61b12739185cdadd49843a620",
      "version": "3.2.0",
      "workflow": "skill de autoria de IR + renderer nativo; não scanner"
    }
  },
  "scope": {
    "inventory": "Arquivos textuais do projeto inspecionado; metadados e hashes, sem conteúdo de dados ou arquivos de ambiente.",
    "imports": "AST TypeScript de todos os .ts/.tsx/.mts/.mjs/.js/.jsx no inventário; includes import, re-export, import() literal, require() literal e entrada de Worker(new URL literal).",
    "exclusions": [
      "node_modules",
      "vendor Archify (manifesto separado)",
      "artefatos gerados site/dist/portable/output",
      "binários e mídia",
      "arquivos ocultos e de ambiente",
      "próprios artefatos architecture (evita ciclo de hashes)",
      "vercel.json: CSP gerada com hash do próprio mapa",
      "evidence/beta-runtime-preservation.json: recibo regenerado após o build",
      "recibos posteriores de build, QA, arquitetura e deployment"
    ],
    "limits": [
      "Chamadas calculadas em tempo de execução não são inferidas.",
      "Aresta import identifica dependência sintática, não chamada ou fluxo de dados.",
      "Import type é marcado e não existe no JavaScript emitido.",
      "Conteúdo scientific data não é copiado para este modelo.",
      "Nenhuma inspeção visual em navegador real foi possível nesta rodada."
    ]
  },
  "statistics": {
    "inventoryFiles": 207,
    "parsedCodeFiles": 55,
    "edges": 286,
    "localEdges": 147,
    "typeOnlyEdges": 32,
    "dynamicImports": 12,
    "workerEntries": 1,
    "unresolvedImports": 0,
    "parseErrors": 0
  },
  "files": [
    {
      "id": "GIT-PROVENIENCIA.md",
      "path": "GIT-PROVENIENCIA.md",
      "category": "documentação e configuração",
      "bytes": 1523,
      "sha256": "30b304899130fc63787f3f38a30cae8334f14bf8a09879375c20235499b249a7",
      "lines": 16,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "LICENSE",
      "path": "LICENSE",
      "category": "documentação e configuração",
      "bytes": 11358,
      "sha256": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
      "lines": 203,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "NOTICE.md",
      "path": "NOTICE.md",
      "category": "documentação e configuração",
      "bytes": 3144,
      "sha256": "2b42c0bbe35d840490f20433a390abd26b57fd022581a4580578d72876aab6d1",
      "lines": 20,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "README.md",
      "path": "README.md",
      "category": "documentação e configuração",
      "bytes": 7231,
      "sha256": "277fdcb1a453fc2260fdc8b005c82834a3edaf82f2421196a3038731b73394ec",
      "lines": 110,
      "provenance": "R8: modificado em relação à base R5"
    },
    {
      "id": "context/index.template.html",
      "path": "context/index.template.html",
      "category": "contexto e cronograma",
      "bytes": 73639,
      "sha256": "39757a59e4b05bca55d7c368699eabc7a7bce345d6d7aeb2190b235f782be057",
      "lines": 311,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "context/project-context.json",
      "path": "context/project-context.json",
      "category": "contexto e cronograma",
      "bytes": 54186,
      "sha256": "49d7d249dadf4da1f3c5f5d681cb629a7c896907d62cb24e133ebcb2639ec123",
      "lines": 1267,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "context/schedule.json",
      "path": "context/schedule.json",
      "category": "contexto e cronograma",
      "bytes": 16371,
      "sha256": "73fd125d2f599cae8b72a681cbbde7f7df20cc7f63a65e6f4061289b9d5265a5",
      "lines": 502,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "docassets/04-FLOWCHARTS-01.dot",
      "path": "docassets/04-FLOWCHARTS-01.dot",
      "category": "documentação e configuração",
      "bytes": 2048,
      "sha256": "9f96ea631cfed126cf1b4b62ff35355a9b02240ac1c1d01114d766ce6d6c3bf9",
      "lines": 43,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "docassets/04-FLOWCHARTS-01.mmd",
      "path": "docassets/04-FLOWCHARTS-01.mmd",
      "category": "documentação e configuração",
      "bytes": 747,
      "sha256": "71f4ba44fa2cff0f280e543430f13f2bed67c556dac71128575d776856bf86bc",
      "lines": 23,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "docassets/04-FLOWCHARTS-01.svg",
      "path": "docassets/04-FLOWCHARTS-01.svg",
      "category": "documentação e configuração",
      "bytes": 17103,
      "sha256": "40e6b4213571643dbeca03b2b377c892bdf03dce2948f8588cb9bfeb3f50adda",
      "lines": 253,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "docassets/04-FLOWCHARTS-02.dot",
      "path": "docassets/04-FLOWCHARTS-02.dot",
      "category": "documentação e configuração",
      "bytes": 1732,
      "sha256": "7e8b3f12bb0493fd97cd7f998919f9528db1c57d85d29f4d0da863eab583f7ab",
      "lines": 34,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "docassets/04-FLOWCHARTS-02.mmd",
      "path": "docassets/04-FLOWCHARTS-02.mmd",
      "category": "documentação e configuração",
      "bytes": 659,
      "sha256": "803a9518d75bf00a26b1e0bb9534a4d935b0fb491ab11eb05f4953b9bab7d94e",
      "lines": 17,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "docassets/04-FLOWCHARTS-02.svg",
      "path": "docassets/04-FLOWCHARTS-02.svg",
      "category": "documentação e configuração",
      "bytes": 13522,
      "sha256": "0f8833e4720f162c4ed7ffd216d79219f46c1979c940e33abdb37e5c8b491db0",
      "lines": 201,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "docassets/04-FLOWCHARTS-03.dot",
      "path": "docassets/04-FLOWCHARTS-03.dot",
      "category": "documentação e configuração",
      "bytes": 1388,
      "sha256": "acaae09fcba18ef11532b9853fb636a4be975e7e6278e243556f0bda2508ad2a",
      "lines": 27,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "docassets/04-FLOWCHARTS-03.mmd",
      "path": "docassets/04-FLOWCHARTS-03.mmd",
      "category": "documentação e configuração",
      "bytes": 505,
      "sha256": "15bc729604a620cb34adb2c81860a48419dbf60eaef40aaa2edd20b3759e2adb",
      "lines": 14,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "docassets/04-FLOWCHARTS-03.svg",
      "path": "docassets/04-FLOWCHARTS-03.svg",
      "category": "documentação e configuração",
      "bytes": 10347,
      "sha256": "c14559f8978796da2df531c76506a16c9c46de6cf7392079566f56a476f46975",
      "lines": 156,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "docassets/04-FLOWCHARTS-04.dot",
      "path": "docassets/04-FLOWCHARTS-04.dot",
      "category": "documentação e configuração",
      "bytes": 1383,
      "sha256": "458280ea58ed1182eb586b6c60c5ce2b4fa82afd67b7a6965b755916a4cbc8ec",
      "lines": 28,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "docassets/04-FLOWCHARTS-04.mmd",
      "path": "docassets/04-FLOWCHARTS-04.mmd",
      "category": "documentação e configuração",
      "bytes": 478,
      "sha256": "ea79c4799b14a06266b7b4b9bf62a9a80bd7e91030df0887f8bd1acbf669b7f2",
      "lines": 15,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "docassets/04-FLOWCHARTS-04.svg",
      "path": "docassets/04-FLOWCHARTS-04.svg",
      "category": "documentação e configuração",
      "bytes": 10479,
      "sha256": "08818bc0ee25b55ef97d6c538f1bd68e7778b38532fab952bedff61fa745e967",
      "lines": 155,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "docs/01-DOSSIE-DECISAO.md",
      "path": "docs/01-DOSSIE-DECISAO.md",
      "category": "documentação e configuração",
      "bytes": 12008,
      "sha256": "e4b0d44ddd8705da34166ed4564cb6d4748eda5d0c21e1a455aaaad75a9575c6",
      "lines": 76,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "docs/02-PRD.md",
      "path": "docs/02-PRD.md",
      "category": "documentação e configuração",
      "bytes": 11616,
      "sha256": "3824ffe2d27d6406065d7c0c6601a445e524d0ac451d43d5547a8751269d2de0",
      "lines": 95,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "docs/03-PRT.md",
      "path": "docs/03-PRT.md",
      "category": "documentação e configuração",
      "bytes": 16544,
      "sha256": "53d04790126a470c21a9e5061920e110215660d7ba83099a08fdc8156db7e569",
      "lines": 143,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "docs/04-FLOWCHARTS.md",
      "path": "docs/04-FLOWCHARTS.md",
      "category": "documentação e configuração",
      "bytes": 3938,
      "sha256": "56051b9bb4ed7bab8878d36d04a14d00d6ba774964f23701cfad88f19398586c",
      "lines": 97,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "docs/05-CRONOGRAMA-E-CRITERIOS.md",
      "path": "docs/05-CRONOGRAMA-E-CRITERIOS.md",
      "category": "documentação e configuração",
      "bytes": 6430,
      "sha256": "d4bc70743c2ec966c4befd7b6d5816e4164e0a881c64bcfee9fe5021337c4fac",
      "lines": 57,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "docs/06-IA-LOCAL-E-ANEXOS.md",
      "path": "docs/06-IA-LOCAL-E-ANEXOS.md",
      "category": "documentação e configuração",
      "bytes": 10626,
      "sha256": "631bcc95f0278b643f3259e5ea20b3681438e00ab09b5250ae8e0f82c7257efb",
      "lines": 79,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "docs/07-SCHEMA-PRISMA.md",
      "path": "docs/07-SCHEMA-PRISMA.md",
      "category": "documentação e configuração",
      "bytes": 4514,
      "sha256": "659cd1e3c6ac157d3568f7f9a0cc1ff44724d1396795c8b9957c4d68ff2fecfd",
      "lines": 43,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "docs/08-HANDOFF.md",
      "path": "docs/08-HANDOFF.md",
      "category": "documentação e configuração",
      "bytes": 17590,
      "sha256": "efa7c5ebe99409da56353c75bbe11487d59599b9819c5dab9e12ded6b360df0f",
      "lines": 151,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "docs/09-VERIFICACAO.md",
      "path": "docs/09-VERIFICACAO.md",
      "category": "documentação e configuração",
      "bytes": 10504,
      "sha256": "71c0584469279d1d9d65a9d1fe311577b11722e1da49d874ca0d403c55163122",
      "lines": 85,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "docs/10-FRENTES-E-RASTREABILIDADE.md",
      "path": "docs/10-FRENTES-E-RASTREABILIDADE.md",
      "category": "documentação e configuração",
      "bytes": 4267,
      "sha256": "dfc6bd91d2efd04f93ca72c966dca5d408b8c82fcc51062b717bfcacc12968c5",
      "lines": 37,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "docs/11-APENDICE-SCHEMA.md",
      "path": "docs/11-APENDICE-SCHEMA.md",
      "category": "documentação e configuração",
      "bytes": 9505,
      "sha256": "b6c5ad5a86a015e8c584f8237da6583596785c81db623ab399775f4c8ebeedda",
      "lines": 311,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "docs/12-HANDOFF-APRESENTACAO.md",
      "path": "docs/12-HANDOFF-APRESENTACAO.md",
      "category": "documentação e configuração",
      "bytes": 14172,
      "sha256": "62e097f4bd921164cd2002c24da26612ca4fe13f400f7f1cc7b119bacbd6cbf0",
      "lines": 106,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "docs/13-ARQUITETURA-ARCHIFY.md",
      "path": "docs/13-ARQUITETURA-ARCHIFY.md",
      "category": "documentação e configuração",
      "bytes": 11569,
      "sha256": "ef5e81c2cd1a2c2e66342a966015b38c45e85860d0682e21ac3229edc2a13f04",
      "lines": 85,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "docs/14-BETA-DEPLOY.md",
      "path": "docs/14-BETA-DEPLOY.md",
      "category": "documentação e configuração",
      "bytes": 6588,
      "sha256": "307f8fd3dca3c7677128b293beb8ee365a8b5a9890b0998236ceff7a8956e474",
      "lines": 69,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "docs/15-PLANO-RELEASE-20261115-0800.md",
      "path": "docs/15-PLANO-RELEASE-20261115-0800.md",
      "category": "documentação e configuração",
      "bytes": 14221,
      "sha256": "74ab3daba099563ce8efd79d833a077e3a1b24bc9c1c7e42674dd573ebf2cd1e",
      "lines": 97,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "docs/16-OPORTUNIDADES-BETA.md",
      "path": "docs/16-OPORTUNIDADES-BETA.md",
      "category": "documentação e configuração",
      "bytes": 10745,
      "sha256": "1363d26f9b9c3448a7e68221db473fcfdaf685bf1db65479a3636bd5828f7c29",
      "lines": 75,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "docs/17-PUBLICACAO-GIT-VERCEL.md",
      "path": "docs/17-PUBLICACAO-GIT-VERCEL.md",
      "category": "documentação e configuração",
      "bytes": 5985,
      "sha256": "f497039a93b71a9f2c3575aab5bc1eb2bf5619b945d28c5c2fb5d7cee7d67690",
      "lines": 70,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "docs/18-CONTEXTO-COMPLETO.md",
      "path": "docs/18-CONTEXTO-COMPLETO.md",
      "category": "documentação e configuração",
      "bytes": 70671,
      "sha256": "60e4022aa1d0c0a2c549132cb5de6c2df9645fdfb7174c6380367b60a8b91a03",
      "lines": 681,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "docs/19-REVISAO-EVIDENCIAS-R8.md",
      "path": "docs/19-REVISAO-EVIDENCIAS-R8.md",
      "category": "documentação e configuração",
      "bytes": 14215,
      "sha256": "6256cef65400b4f1c9d4bd1c7b02ff81471e411ead373dd1f4adead6bb17daf2",
      "lines": 116,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "docs/20-CENTRAL-CONTEXTO-CRONOGRAMA.md",
      "path": "docs/20-CENTRAL-CONTEXTO-CRONOGRAMA.md",
      "category": "documentação e configuração",
      "bytes": 9892,
      "sha256": "e33c59d0a3129e31abb45f39200efa1a348746549270a34bb315a8de55b2f35e",
      "lines": 98,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "docs/diagrams/01-jornada.mmd",
      "path": "docs/diagrams/01-jornada.mmd",
      "category": "documentação e configuração",
      "bytes": 747,
      "sha256": "71f4ba44fa2cff0f280e543430f13f2bed67c556dac71128575d776856bf86bc",
      "lines": 23,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "docs/diagrams/02-motor.mmd",
      "path": "docs/diagrams/02-motor.mmd",
      "category": "documentação e configuração",
      "bytes": 659,
      "sha256": "803a9518d75bf00a26b1e0bb9534a4d935b0fb491ab11eb05f4953b9bab7d94e",
      "lines": 17,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "docs/diagrams/03-replay.mmd",
      "path": "docs/diagrams/03-replay.mmd",
      "category": "documentação e configuração",
      "bytes": 505,
      "sha256": "15bc729604a620cb34adb2c81860a48419dbf60eaef40aaa2edd20b3759e2adb",
      "lines": 14,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "docs/diagrams/04-topologia.mmd",
      "path": "docs/diagrams/04-topologia.mmd",
      "category": "documentação e configuração",
      "bytes": 478,
      "sha256": "ea79c4799b14a06266b7b4b9bf62a9a80bd7e91030df0887f8bd1acbf669b7f2",
      "lines": 15,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "evidence/ab-r3a-analysis.json",
      "path": "evidence/ab-r3a-analysis.json",
      "category": "pesquisa e evidências",
      "bytes": 56170035,
      "sha256": "e3c5fdac7d59f8af7b0528e5c7847a2fe49331a7fd53744bf8cadfaec53865bb",
      "lines": 1444970,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "evidence/ab-r3a-analysis.json.gz",
      "path": "evidence/ab-r3a-analysis.json.gz",
      "category": "pesquisa e evidências",
      "bytes": 7053101,
      "sha256": "37b82fa27b645f3b327701833e67c1d6583ba8e7605f3e8df59db14da38f8b4a",
      "lines": 25722,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "evidence/ab-r3a-digest.json",
      "path": "evidence/ab-r3a-digest.json",
      "category": "pesquisa e evidências",
      "bytes": 4878,
      "sha256": "2b7fe86f17d3e78671bb32fa9a080ceb93f618ec258fb27acf1d151b42be57ad",
      "lines": 189,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "evidence/adversarial-review.json",
      "path": "evidence/adversarial-review.json",
      "category": "pesquisa e evidências",
      "bytes": 8058,
      "sha256": "7fb5445ef491128c00a5d42f1f01251161c7ea51ea1e1bb2ce1f9d264284da20",
      "lines": 211,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "evidence/ai-usage-r5.json",
      "path": "evidence/ai-usage-r5.json",
      "category": "pesquisa e evidências",
      "bytes": 713,
      "sha256": "db2dc46b6f8a5cd8033af38306d4e134d5239a2c03cb664cd590ff1552b12dfc",
      "lines": 22,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "evidence/artifact-build.json",
      "path": "evidence/artifact-build.json",
      "category": "pesquisa e evidências",
      "bytes": 4173,
      "sha256": "77da69d97f5ac25534f19107923ff1009f8dff6ddaf6a12c672cae1db9ed26c0",
      "lines": 135,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "evidence/catalog-enumeration.json",
      "path": "evidence/catalog-enumeration.json",
      "category": "pesquisa e evidências",
      "bytes": 144113,
      "sha256": "99082570a41065d0b80de44565e24de4dc63254d3d5a5647371b5d6f5bff9146",
      "lines": 4627,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "evidence/chronology.json",
      "path": "evidence/chronology.json",
      "category": "pesquisa e evidências",
      "bytes": 925,
      "sha256": "c8f70c711081ed975e0e6879b1a53309dc8f869d8bf92dd0617f69b56ac1720e",
      "lines": 21,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "evidence/diagram-rendering.json",
      "path": "evidence/diagram-rendering.json",
      "category": "pesquisa e evidências",
      "bytes": 1557,
      "sha256": "c375237ea9d6c65043433b55848fe2b65b07daeab303bac87573a4c5957c5b9a",
      "lines": 42,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "evidence/engine-benchmark.json",
      "path": "evidence/engine-benchmark.json",
      "category": "pesquisa e evidências",
      "bytes": 26498,
      "sha256": "0121092e900a255e38ed3f17d24d3fc57573a0b7cc1121b319a8cab1d550b473",
      "lines": 939,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "evidence/evi3-rerun.json",
      "path": "evidence/evi3-rerun.json",
      "category": "pesquisa e evidências",
      "bytes": 4962,
      "sha256": "4f02e0dcc99dbbd07139a035eefb8a42c8c61293437857ed6f00e2d94bf0f7e2",
      "lines": 144,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "evidence/final-validation.json",
      "path": "evidence/final-validation.json",
      "category": "pesquisa e evidências",
      "bytes": 16713,
      "sha256": "08fd44f08a39fec218d914e3735572423a86bd126c22a1dcf7df78efb1df8972",
      "lines": 199,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "evidence/game-baseline-r5.json",
      "path": "evidence/game-baseline-r5.json",
      "category": "pesquisa e evidências",
      "bytes": 8479,
      "sha256": "c7f2ca519555533de6b7363527cbde20ed1fff64567776c2b044688d43e74092",
      "lines": 269,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "evidence/package-manifest.json",
      "path": "evidence/package-manifest.json",
      "category": "pesquisa e evidências",
      "bytes": 28907,
      "sha256": "f683a766dfa69dc053df472281bcfbdc204a3fb4b535136206df6fe7a7e71033",
      "lines": 893,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "evidence/pdf-geometry-check.json",
      "path": "evidence/pdf-geometry-check.json",
      "category": "pesquisa e evidências",
      "bytes": 12303,
      "sha256": "d82fcb0e7de805a2e5762758e40e710956fc6026dd0d14bc23892924912b1445",
      "lines": 683,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "evidence/pdf-visual-review.json",
      "path": "evidence/pdf-visual-review.json",
      "category": "pesquisa e evidências",
      "bytes": 742,
      "sha256": "f60557f470ba57ff397fe84b4f93a0e59f1f32fb6936b191c7c5a91cc3f43cb0",
      "lines": 21,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "evidence/portable-build.json",
      "path": "evidence/portable-build.json",
      "category": "pesquisa e evidências",
      "bytes": 1301,
      "sha256": "e29183200846cc0c8fe626cc14b320c7ec5565fb124c77da3a533fa2bee64544",
      "lines": 48,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "evidence/presentation-build.json",
      "path": "evidence/presentation-build.json",
      "category": "pesquisa e evidências",
      "bytes": 1700,
      "sha256": "774366ecbc3e775dce97e0e04408c54597b8b827e385335cfc4acafdfeda660a",
      "lines": 45,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "evidence/presentation-kit-http-qa.json",
      "path": "evidence/presentation-kit-http-qa.json",
      "category": "pesquisa e evidências",
      "bytes": 2700,
      "sha256": "c97837305aa751ea4e14905788c91437c04ca51cac9819d045858923fd7662bb",
      "lines": 100,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "evidence/presentation-qa.json",
      "path": "evidence/presentation-qa.json",
      "category": "pesquisa e evidências",
      "bytes": 13017,
      "sha256": "108997b504ee3b87e83dc7557bf988d1c692519a0a4898347ceedb0c285be6cc",
      "lines": 431,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "evidence/presentation-release-r5.json",
      "path": "evidence/presentation-release-r5.json",
      "category": "pesquisa e evidências",
      "bytes": 4130,
      "sha256": "b6aead8209322c998dabe601528011e15aba4a56bc6c2631989b177eccee57de",
      "lines": 126,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "evidence/release-dependencies-network.json",
      "path": "evidence/release-dependencies-network.json",
      "category": "pesquisa e evidências",
      "bytes": 74911,
      "sha256": "b188c9a1de759dab527c09ecf4841631dd9ed6d0d7ee06c1522910c55691256e",
      "lines": 2509,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "evidence/release-qa-manifest.json",
      "path": "evidence/release-qa-manifest.json",
      "category": "pesquisa e evidências",
      "bytes": 4582,
      "sha256": "e0d13356bd7f032dff696c816fa90afddd08cc537b2db92a99ba92ed0c2fac0d",
      "lines": 122,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "evidence/server-http-smoke.json",
      "path": "evidence/server-http-smoke.json",
      "category": "pesquisa e evidências",
      "bytes": 7457,
      "sha256": "795afc3997a751bee47183d245a0c54253dd0877ff3d58cb64400446a4f48d5e",
      "lines": 164,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "evidence/source-index.json",
      "path": "evidence/source-index.json",
      "category": "pesquisa e evidências",
      "bytes": 42639,
      "sha256": "c8886ddaaf981a7680288139a5628e4cb10fe5a0d753dd4a17922ffbe2613164",
      "lines": 1801,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "evidence/spaceapps-review-r5.json",
      "path": "evidence/spaceapps-review-r5.json",
      "category": "pesquisa e evidências",
      "bytes": 14849,
      "sha256": "b179e63c0a79ec1d410ed07539a4b83a9d8d12104fd2dc8a31b20c2f93cf4dc1",
      "lines": 374,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "evidence/ui-dom-release-final.json",
      "path": "evidence/ui-dom-release-final.json",
      "category": "pesquisa e evidências",
      "bytes": 746,
      "sha256": "6e9be47f01ec9c66e3e5a033e0bb85ad33065c1a5d4ffb07a56284e0b7d97ab1",
      "lines": 24,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "evidence/ui-dom-test.json",
      "path": "evidence/ui-dom-test.json",
      "category": "pesquisa e evidências",
      "bytes": 746,
      "sha256": "6e9be47f01ec9c66e3e5a033e0bb85ad33065c1a5d4ffb07a56284e0b7d97ab1",
      "lines": 24,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "examples/01-long-base.json",
      "path": "examples/01-long-base.json",
      "category": "documentação e configuração",
      "bytes": 12876,
      "sha256": "5c1a4ed08e34020d6e5d53f61b3778ef070ee028b0232be343fcd670763ccedb",
      "lines": 2,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "examples/02-short-base.json",
      "path": "examples/02-short-base.json",
      "category": "documentação e configuração",
      "bytes": 11407,
      "sha256": "23eaed7547930e9153a12f8ca9f24b1f5217c8ef533f2deeb7ac17fbfe4cf6d5",
      "lines": 2,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "examples/03-short-repaired.json",
      "path": "examples/03-short-repaired.json",
      "category": "documentação e configuração",
      "bytes": 11872,
      "sha256": "b5c366d39d5274364d3afe525c494d4417323f43115c7b26cb019dc42b7cdeb5",
      "lines": 2,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "index.html",
      "path": "index.html",
      "category": "documentação e configuração",
      "bytes": 697,
      "sha256": "fe3f421b5189ec3694b46598b0bdd058d05a58785747aa97ab2ed39bef083b4f",
      "lines": 16,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "kit/AI-USAGE.md",
      "path": "kit/AI-USAGE.md",
      "category": "documentação e configuração",
      "bytes": 3175,
      "sha256": "03bcc20d19ccefd2c9ec7ab13180c5efe2308c861b164e4eeee94c25c3a0a319",
      "lines": 27,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "kit/COMECE_AQUI.html",
      "path": "kit/COMECE_AQUI.html",
      "category": "documentação e configuração",
      "bytes": 10502,
      "sha256": "680152d706a87029aab77b3bec1cc31e1fe2410e743ef987d02632a1f43b43bd",
      "lines": 43,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "kit/INICIAR_MAC_LINUX.command",
      "path": "kit/INICIAR_MAC_LINUX.command",
      "category": "documentação e configuração",
      "bytes": 325,
      "sha256": "fcf52c8710b2dc1d2f6b2be094e84c806db3f847edb22303ec485e4666829b6b",
      "lines": 9,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "kit/INICIAR_WINDOWS.cmd",
      "path": "kit/INICIAR_WINDOWS.cmd",
      "category": "documentação e configuração",
      "bytes": 248,
      "sha256": "5daa1d08800721d906419e4bee79495543a669aa7d3ac36dd329a485587cab3d",
      "lines": 11,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "kit/LEIA_PRIMEIRO.md",
      "path": "kit/LEIA_PRIMEIRO.md",
      "category": "documentação e configuração",
      "bytes": 5124,
      "sha256": "aca2833aca3a502d78f9ec822d3d2d838d8c8f42528e1c7a79053c919ed45ce2",
      "lines": 62,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "kit/VERIFICAR_PACOTE.py",
      "path": "kit/VERIFICAR_PACOTE.py",
      "category": "documentação e configuração",
      "bytes": 1266,
      "sha256": "f3fc640a0aed551550846380f7501a712e356fe230a47804e8ba1e976b828c6f",
      "lines": 30,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "licenses/React-MIT.txt",
      "path": "licenses/React-MIT.txt",
      "category": "documentação e configuração",
      "bytes": 1088,
      "sha256": "da6d3703ed11cbe42bd212c725957c98da23cbff1998c05fa4b3d976d1a58e93",
      "lines": 22,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "licenses/ReactDOM-MIT.txt",
      "path": "licenses/ReactDOM-MIT.txt",
      "category": "documentação e configuração",
      "bytes": 1088,
      "sha256": "da6d3703ed11cbe42bd212c725957c98da23cbff1998c05fa4b3d976d1a58e93",
      "lines": 22,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "licenses/Scheduler-MIT.txt",
      "path": "licenses/Scheduler-MIT.txt",
      "category": "documentação e configuração",
      "bytes": 1088,
      "sha256": "da6d3703ed11cbe42bd212c725957c98da23cbff1998c05fa4b3d976d1a58e93",
      "lines": 22,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "licenses/Three-MIT.txt",
      "path": "licenses/Three-MIT.txt",
      "category": "documentação e configuração",
      "bytes": 1081,
      "sha256": "8b378ebe60e2fe500158cb0ac71cb5e8b7d92953c2abcc63a0eb90499653b5bc",
      "lines": 22,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "package-lock.json",
      "path": "package-lock.json",
      "category": "documentação e configuração",
      "bytes": 81476,
      "sha256": "c81e84fc85b8827e956ba95ebd658f6056cefe22122da9b5896bbd98cff6f959",
      "lines": 2469,
      "provenance": "R8: modificado em relação à base R5"
    },
    {
      "id": "package.json",
      "path": "package.json",
      "category": "documentação e configuração",
      "bytes": 1638,
      "sha256": "fcb96a6699e3bc76e360c17dd8b79f8a12246900d7ef677820c44b6826586bad",
      "lines": 48,
      "provenance": "R8: modificado em relação à base R5"
    },
    {
      "id": "presentation/PITCH_EN_7_SLIDES.md",
      "path": "presentation/PITCH_EN_7_SLIDES.md",
      "category": "apresentação",
      "bytes": 13356,
      "sha256": "7581742b1a417b8892c87da89471e85111ca6fa5ec05c479dd1dcdf829a2a155",
      "lines": 268,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "presentation/README_APRESENTADOR.md",
      "path": "presentation/README_APRESENTADOR.md",
      "category": "apresentação",
      "bytes": 8269,
      "sha256": "5638ba82176ab46c9259313d57073a5704f9150c3016160ccaa12dd2d6c19641",
      "lines": 80,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "presentation/ROTEIRO_PT_EN.md",
      "path": "presentation/ROTEIRO_PT_EN.md",
      "category": "apresentação",
      "bytes": 7849,
      "sha256": "b35fcc693884a58e03be37dc70a2b1f61199ee4f806b0658561957b88d0b3dc6",
      "lines": 69,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "presentation/src/main.ts",
      "path": "presentation/src/main.ts",
      "category": "apresentação",
      "bytes": 50384,
      "sha256": "a5d7f07292789b771438ea8c69ecd68f11ba92f4e0249df24f5b5ca81f1832f5",
      "lines": 643,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "presentation/src/styles.css",
      "path": "presentation/src/styles.css",
      "category": "apresentação",
      "bytes": 37972,
      "sha256": "6b6ec2c6e52a9201f48344ff98570d0dfdac2b412df6bd46187477ac5ff173ca",
      "lines": 27,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "presentation/src/template.html",
      "path": "presentation/src/template.html",
      "category": "apresentação",
      "bytes": 30702,
      "sha256": "04f5d875e5f0c0d317cdaec46c3b931a90e1334760f817708cb36a7ada186f3e",
      "lines": 239,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "presentation/tsconfig.json",
      "path": "presentation/tsconfig.json",
      "category": "apresentação",
      "bytes": 156,
      "sha256": "4e66e4e80d1e3ea7d2965ccaffadc22a715f865065b395d889b095a7751c84a1",
      "lines": 6,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "prisma/prisma.config.ts",
      "path": "prisma/prisma.config.ts",
      "category": "contrato futuro",
      "bytes": 290,
      "sha256": "321f23211fa4744475ecbe09bd7211555efa2d86be914e22355c69128c309403",
      "lines": 8,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "prisma/schema.prisma",
      "path": "prisma/schema.prisma",
      "category": "contrato futuro",
      "bytes": 8871,
      "sha256": "91e735506f3f2f30acf87db91e1c62c613b50ee7b38dc996ac78e7e4c6908fa3",
      "lines": 291,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "public/data/cmr-mod13q1-granule-2.json",
      "path": "public/data/cmr-mod13q1-granule-2.json",
      "category": "ciência",
      "bytes": 5720,
      "sha256": "e46d7fb3ece4c140792fdd0fc3b87ba82fedbb1c0e102810167401e3d3450f8b",
      "lines": 1,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "public/data/cmr-mod13q1-granules.json",
      "path": "public/data/cmr-mod13q1-granules.json",
      "category": "ciência",
      "bytes": 5719,
      "sha256": "82fec0d068f4f959104b6bd55230bc37b9e5d79a3b2b9fc65b21e2531da3169f",
      "lines": 1,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "public/data/mod13q1-A-raw.json",
      "path": "public/data/mod13q1-A-raw.json",
      "category": "ciência",
      "bytes": 4232,
      "sha256": "ffaa53eab7a43ce1c9e40ddcb3f21f4f37d30440dc0eab17f5e728bafeb8bd47",
      "lines": 2,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "public/data/mod13q1-A-retrieval.json",
      "path": "public/data/mod13q1-A-retrieval.json",
      "category": "ciência",
      "bytes": 6162,
      "sha256": "7e9fc57444d561f094145ea684cf5bbebe305f416dd2c7a089fe2cc73fcea99f",
      "lines": 264,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "public/data/mod13q1-B-raw.json",
      "path": "public/data/mod13q1-B-raw.json",
      "category": "ciência",
      "bytes": 4232,
      "sha256": "94662069c4560be7d1ef1991dacfe399e5c031b2f41bf3ad2fdb93a5531f6c10",
      "lines": 2,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "public/data/mod13q1-B-retrieval.json",
      "path": "public/data/mod13q1-B-retrieval.json",
      "category": "ciência",
      "bytes": 6162,
      "sha256": "cb611e590bd6c616ff84245798a066eaa5ffa8b8f6d516a67e90165170e1648b",
      "lines": 264,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "public/data/mod13q1-C-raw.json",
      "path": "public/data/mod13q1-C-raw.json",
      "category": "ciência",
      "bytes": 4232,
      "sha256": "1efe29e75b88fc4b84f557679b42b86908de0d60385077d7c9d12eab0565cfa6",
      "lines": 2,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "public/data/mod13q1-C-retrieval.json",
      "path": "public/data/mod13q1-C-retrieval.json",
      "category": "ciência",
      "bytes": 6162,
      "sha256": "dc791cc18e8de03f9d806552093aea52be371297d6b954ccfe86e6cf8bfe863e",
      "lines": 264,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "public/data/mod13q1-bands.json",
      "path": "public/data/mod13q1-bands.json",
      "category": "ciência",
      "bytes": 2366,
      "sha256": "d41dc06bed934ea5f032e0eb88b047c1c3c65df1c46db58aa6420be791475303",
      "lines": 2,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "public/data/mod13q1-research-pack.json",
      "path": "public/data/mod13q1-research-pack.json",
      "category": "ciência",
      "bytes": 5942,
      "sha256": "6f49100126a82e1783281083e2c268bcf7b4661b500280de4dc96123036b2a1e",
      "lines": 177,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "references/user/README.md",
      "path": "references/user/README.md",
      "category": "documentação e configuração",
      "bytes": 763,
      "sha256": "a95887513aa25d680ec2eff2cf074e4a911395eeed74effeda49335fb56ffd5b",
      "lines": 9,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "references/user/manifesto-referencias.json",
      "path": "references/user/manifesto-referencias.json",
      "category": "documentação e configuração",
      "bytes": 950,
      "sha256": "aba8ce49911105fc13e3ae166310cf27a28bb3ca3ecaf1c580d17ae2fbba93a4",
      "lines": 24,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "research/01-regras-ciencia.md",
      "path": "research/01-regras-ciencia.md",
      "category": "pesquisa e evidências",
      "bytes": 22928,
      "sha256": "9aab3ba8645620b85f3f60fcd7a5a532902c5875947e73c1f93d6a6bc3179a43",
      "lines": 147,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "research/02-fastino-anexos.md",
      "path": "research/02-fastino-anexos.md",
      "category": "pesquisa e evidências",
      "bytes": 38848,
      "sha256": "6d4bef61273b935dc9fe69495ec08cc8cbb85a987d79630b929ac005a42540f4",
      "lines": 281,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "research/03-oportunidades-spec.md",
      "path": "research/03-oportunidades-spec.md",
      "category": "pesquisa e evidências",
      "bytes": 21968,
      "sha256": "d759b2e2b44c1abb0803b62e84dc6eee1039890a866e7204002649f7d0a46be8",
      "lines": 143,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "research/04-motor.md",
      "path": "research/04-motor.md",
      "category": "pesquisa e evidências",
      "bytes": 11240,
      "sha256": "2f601634c0a66e3e2e3688756102ec6ee9dc3f0a85e329d1ceeecbda11c9a34b",
      "lines": 78,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "research/05-interface.md",
      "path": "research/05-interface.md",
      "category": "pesquisa e evidências",
      "bytes": 9373,
      "sha256": "5c042e98f379942c748714129218f5942379afdc1ad966672a341cb8361b7862",
      "lines": 66,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "research/06-persistencia.md",
      "path": "research/06-persistencia.md",
      "category": "pesquisa e evidências",
      "bytes": 13426,
      "sha256": "44855b8a8b25a1a9a114b2b8dfd4b7e695a564da132303e9c316fc25752407fa",
      "lines": 110,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "research/07-revisao-independente.md",
      "path": "research/07-revisao-independente.md",
      "category": "pesquisa e evidências",
      "bytes": 10542,
      "sha256": "9addda5dfac4abb150afd70a27c5773507524b1e985b8102997d58e432eb97c4",
      "lines": 76,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "research/08-auditoria-repositorios.md",
      "path": "research/08-auditoria-repositorios.md",
      "category": "pesquisa e evidências",
      "bytes": 38683,
      "sha256": "ef25e95fc4db4eee3b9fbb0c0a7b6addacac1bc5fdea78f4c70e0a3f719d1437",
      "lines": 118,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "research/09-release-e-desempenho.md",
      "path": "research/09-release-e-desempenho.md",
      "category": "pesquisa e evidências",
      "bytes": 11347,
      "sha256": "aa8a7efa47575230faa6365342aad72efd685a3736c8dccee9f9491ad9284aa7",
      "lines": 94,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "research/10-handoff-redteam.md",
      "path": "research/10-handoff-redteam.md",
      "category": "pesquisa e evidências",
      "bytes": 15838,
      "sha256": "be7dc82e8e25c423fb55d71a1f833bed33f052eba965389f1b4a1a5c071b191e",
      "lines": 98,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "research/11-revisao-spaceapps-apresentacao.md",
      "path": "research/11-revisao-spaceapps-apresentacao.md",
      "category": "pesquisa e evidências",
      "bytes": 15356,
      "sha256": "3b710993ecedd23a65f6e7b83cfccfd9b1032e464a2e52c45b82abb54a40ac89",
      "lines": 121,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "research/anexo-original.txt",
      "path": "research/anexo-original.txt",
      "category": "pesquisa e evidências",
      "bytes": 32575,
      "sha256": "62fa654201593bf9dd4f62667dcb91d3e89f98f00cf001ac1506847d0506dc51",
      "lines": 253,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "research/evidence/evi3-validation.json",
      "path": "research/evidence/evi3-validation.json",
      "category": "pesquisa e evidências",
      "bytes": 5142,
      "sha256": "d62493deedf1a37207491b5019d363d5c12bd4578b863400d1536ae3d73ebda1",
      "lines": 144,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "research/evidence/repository-audit.json",
      "path": "research/evidence/repository-audit.json",
      "category": "pesquisa e evidências",
      "bytes": 108868,
      "sha256": "b41886b4009d60120c0abe622aee1067419ca894ff2032520fb431ab5e60d620",
      "lines": 2037,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "research/evidence/repository-metadata.json",
      "path": "research/evidence/repository-metadata.json",
      "category": "pesquisa e evidências",
      "bytes": 52640,
      "sha256": "a73be7ae400789722038aff5ae9b052e74899e1551dad0aba3ef29f8b90d9df5",
      "lines": 1421,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "research/evidence/resources-retrieval-20261114.json",
      "path": "research/evidence/resources-retrieval-20261114.json",
      "category": "pesquisa e evidências",
      "bytes": 3392,
      "sha256": "c872b373c8c3e394791afe87c021fbcbbd0ae42fb977f262a334103d1e193afb",
      "lines": 103,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "research/evidence/validate-evi3-research.py",
      "path": "research/evidence/validate-evi3-research.py",
      "category": "pesquisa e evidências",
      "bytes": 4384,
      "sha256": "5a28d702d0ae91899b92130c184f3274fa147c8b790e6dfc64ad81bc6e5e8c00",
      "lines": 77,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "research/history/01-juri-mundial-rodada-anterior.md",
      "path": "research/history/01-juri-mundial-rodada-anterior.md",
      "category": "pesquisa e evidências",
      "bytes": 23496,
      "sha256": "4f7c72d8a7773f7340024fbf76364591b11a668dd3073656bb5bf7c3cee0b276",
      "lines": 112,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "research/history/02-selecao-rodada-anterior.md",
      "path": "research/history/02-selecao-rodada-anterior.md",
      "category": "pesquisa e evidências",
      "bytes": 24050,
      "sha256": "8507eee03bea306b56327feb46d075818845f2607df4f769bfa4f1fe29d657a1",
      "lines": 158,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "research/initial/arquitetura-prova.md",
      "path": "research/initial/arquitetura-prova.md",
      "category": "pesquisa e evidências",
      "bytes": 39812,
      "sha256": "9170c32242e6c7715b4f77591c2da33583b3344a5322b48982a2bb485b20fc94",
      "lines": 269,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "research/initial/desafios-ciencia.md",
      "path": "research/initial/desafios-ciencia.md",
      "category": "pesquisa e evidências",
      "bytes": 34474,
      "sha256": "7a6c1fd3172defafd96a73ebd5c86917f597b4d120a81ee8d403f794b59f8016",
      "lines": 230,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "research/initial/historico.md",
      "path": "research/initial/historico.md",
      "category": "pesquisa e evidências",
      "bytes": 21566,
      "sha256": "f01cc4d6d8164f75a11b18d024e3a107a9e24b1ddc12cb178be26513d2cb7244",
      "lines": 164,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "research/initial/paises-brasil.md",
      "path": "research/initial/paises-brasil.md",
      "category": "pesquisa e evidências",
      "bytes": 19553,
      "sha256": "1b111c13b85e95dabcce3ab6ffed21f267bcb2a1ec8ae4f6fb4d810b14a46984",
      "lines": 142,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "research/initial/repositorios.md",
      "path": "research/initial/repositorios.md",
      "category": "pesquisa e evidências",
      "bytes": 25874,
      "sha256": "5ee5c580d299236d85370760ddcc484060dfea6840b1f30fa8054c678b3ce28c",
      "lines": 106,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "research/initial/revisao-independente.md",
      "path": "research/initial/revisao-independente.md",
      "category": "pesquisa e evidências",
      "bytes": 11263,
      "sha256": "dd115c751ce54ad732ec05b8e29d88cedbe4959663ea0a437957094930be29d2",
      "lines": 59,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "scripts/audit-release.mjs",
      "path": "scripts/audit-release.mjs",
      "category": "build e publicação",
      "bytes": 4848,
      "sha256": "6c5fdf6c314cf076a8e70c021f2811bae4f39992bfeb54ee27fa333cf8a7726a",
      "lines": 49,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "scripts/benchmark-engine.mjs",
      "path": "scripts/benchmark-engine.mjs",
      "category": "build e publicação",
      "bytes": 4093,
      "sha256": "12c70dc52ed781b103722270508ea6b18a298abc7c82ad7a98e2b5c5f5a57f95",
      "lines": 44,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "scripts/build-beta-site.mjs",
      "path": "scripts/build-beta-site.mjs",
      "category": "build e publicação",
      "bytes": 29118,
      "sha256": "320722d403999ace4649ba5d99283f6c679cb82079e9f731e35b92c0cd3931ce",
      "lines": 245,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "scripts/build-context-hub.mjs",
      "path": "scripts/build-context-hub.mjs",
      "category": "build e publicação",
      "bytes": 4863,
      "sha256": "4eb57df4c8645007373f5e6f39c8651f0c58ff4a0bdb8fb5b66bee454ca74a25",
      "lines": 98,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "scripts/build-portable.mjs",
      "path": "scripts/build-portable.mjs",
      "category": "build e publicação",
      "bytes": 3330,
      "sha256": "44d853f432dbbbed9d3ea62167f9f994705afe8240bda91ac65dce3815177ce5",
      "lines": 33,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "scripts/build-presentation.mjs",
      "path": "scripts/build-presentation.mjs",
      "category": "build e publicação",
      "bytes": 3483,
      "sha256": "12cbe6700e8773a65a3c37bf23af59a6a15920092abcb4b1d30baabc4a96bb41",
      "lines": 56,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "scripts/build-research-library.mjs",
      "path": "scripts/build-research-library.mjs",
      "category": "build e publicação",
      "bytes": 14364,
      "sha256": "e03536fbcdaebefd6e12a8a3783619fe9c6963a5ddfc6f47eea4023400b6f670",
      "lines": 98,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "scripts/export-examples.mjs",
      "path": "scripts/export-examples.mjs",
      "category": "build e publicação",
      "bytes": 3151,
      "sha256": "d4866cf994e7d48bb3014434802fc408a4ae1eedac0b11ee44464b2267613853",
      "lines": 52,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "scripts/prepare-vercel-static.mjs",
      "path": "scripts/prepare-vercel-static.mjs",
      "category": "build e publicação",
      "bytes": 4938,
      "sha256": "96068e640965188b16ac7d78e78edd1356a4ffeea347f4ccb155e55202761ee5",
      "lines": 81,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "scripts/recover-archives.mjs",
      "path": "scripts/recover-archives.mjs",
      "category": "build e publicação",
      "bytes": 3710,
      "sha256": "39d0fe80a6857d65ae818fa700424332777a960fb8afaf99fb3a275867b5a788",
      "lines": 63,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "scripts/serve-beta.mjs",
      "path": "scripts/serve-beta.mjs",
      "category": "build e publicação",
      "bytes": 3973,
      "sha256": "467f806b9e813818c567e0aa8e5d3ab8a203aa71be54bf493768eea4378894a3",
      "lines": 64,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "scripts/serve-presentation-kit.mjs",
      "path": "scripts/serve-presentation-kit.mjs",
      "category": "build e publicação",
      "bytes": 5654,
      "sha256": "29756e6d81332a5223f933d7cf468ede496f36264c04508971d39bf9461d8f62",
      "lines": 88,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "scripts/serve.mjs",
      "path": "scripts/serve.mjs",
      "category": "build e publicação",
      "bytes": 3274,
      "sha256": "cb1928ff2b92119a9daac0cd172c72687b26d80c93266dfefda0ca592631edd4",
      "lines": 45,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "scripts/smoke-presentation-kit.mjs",
      "path": "scripts/smoke-presentation-kit.mjs",
      "category": "build e publicação",
      "bytes": 6624,
      "sha256": "2cc103b2d239596ffc04dc7a7cec28a978e164f9c6b2f2a890902d5f5e1d680a",
      "lines": 83,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "scripts/smoke-server.mjs",
      "path": "scripts/smoke-server.mjs",
      "category": "build e publicação",
      "bytes": 3307,
      "sha256": "e69b2fba1f4cbad3a54af13d005ad9e876c001f02ff9078f8e34128a23efd976",
      "lines": 53,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "scripts/test-beta-site.mjs",
      "path": "scripts/test-beta-site.mjs",
      "category": "build e publicação",
      "bytes": 29956,
      "sha256": "7ce51997f3c56a2beabef1def7afdf06b6f7cd93c31c02e8410e9d1b71de64b3",
      "lines": 454,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "scripts/test-context-hub.mjs",
      "path": "scripts/test-context-hub.mjs",
      "category": "build e publicação",
      "bytes": 27405,
      "sha256": "a79ea9f59af63041dd1afb5c2cfba293afd635d2a45525a73e6c9fb19f76d4f9",
      "lines": 449,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "scripts/test-presentation.mjs",
      "path": "scripts/test-presentation.mjs",
      "category": "build e publicação",
      "bytes": 38231,
      "sha256": "271f9b6c1cacfc27bf0bd51d55b7222670cd113a78f60e7a768abce439d1c4e1",
      "lines": 630,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "scripts/test-ui.mjs",
      "path": "scripts/test-ui.mjs",
      "category": "build e publicação",
      "bytes": 2137,
      "sha256": "a789ac7a6f3a496b29153f51ca177e0f7f1309f28bb5a1b42a61d8fbdebe4b5a",
      "lines": 24,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "scripts/verify-science-data.mjs",
      "path": "scripts/verify-science-data.mjs",
      "category": "build e publicação",
      "bytes": 4138,
      "sha256": "3f3df8e8cb70fdb7793bf5576d6ab97bbcaa8f0fb0a3b570c2f34b433cca744e",
      "lines": 73,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "specs/001-mission-receipt/plan.md",
      "path": "specs/001-mission-receipt/plan.md",
      "category": "documentação e configuração",
      "bytes": 690,
      "sha256": "a1fd13361dc9d24dfb19028027f47f636c46b0e270a3406df5ac590a01123f7f",
      "lines": 6,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "specs/001-mission-receipt/spec.md",
      "path": "specs/001-mission-receipt/spec.md",
      "category": "documentação e configuração",
      "bytes": 1362,
      "sha256": "cc0c99c3d344ee0d9749f62cbc4d7bcb9fc00e68bdbbabc33617a63c143e9aa1",
      "lines": 24,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "specs/001-mission-receipt/tasks.md",
      "path": "specs/001-mission-receipt/tasks.md",
      "category": "documentação e configuração",
      "bytes": 3846,
      "sha256": "80c441eba3fbbf404079f4bbec09de0548c2acfa44bcc2babebb6e04337a353f",
      "lines": 32,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "specs/IMPLEMENTATION-CONTRACT.md",
      "path": "specs/IMPLEMENTATION-CONTRACT.md",
      "category": "documentação e configuração",
      "bytes": 6862,
      "sha256": "cb1d823a9909d3ed2e9be07b88378eabc5a7fbba3cfb70f53c407d44e8aec1b6",
      "lines": 58,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "specs/constitution.md",
      "path": "specs/constitution.md",
      "category": "documentação e configuração",
      "bytes": 1312,
      "sha256": "1299a40afb83c2707a99be274526d83298355f30655237324efdbb924f5c5ee5",
      "lines": 15,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "specs/traceability.json",
      "path": "specs/traceability.json",
      "category": "documentação e configuração",
      "bytes": 13501,
      "sha256": "6ec70025eecbfbbfc98de28095c418041dcf5d2b9b22771af83019ef3d0ca658",
      "lines": 423,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "src/App.tsx",
      "path": "src/App.tsx",
      "category": "jogo",
      "bytes": 16806,
      "sha256": "a650a7e75dcb2d71b014df322dad9f156c42db56d19f512e667c67c0ecad0e8b",
      "lines": 214,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "src/core/catalog.ts",
      "path": "src/core/catalog.ts",
      "category": "núcleo",
      "bytes": 6020,
      "sha256": "1533d5eedab7a3a7c5256f0e4a209afe19c45a40b0102de1d7d8ccf79be14ef8",
      "lines": 95,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "src/core/contracts.ts",
      "path": "src/core/contracts.ts",
      "category": "núcleo",
      "bytes": 3414,
      "sha256": "f9d77b4b80353aed182f4ec5e4d18d42611ab84362a98f0cf84c4db6155057e2",
      "lines": 66,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "src/core/engine.ts",
      "path": "src/core/engine.ts",
      "category": "núcleo",
      "bytes": 18245,
      "sha256": "8f108777bb8e82586c703fcefb27a328dc4544b07e2cb2b6fd01f5310c722635",
      "lines": 263,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "src/core/exact.ts",
      "path": "src/core/exact.ts",
      "category": "núcleo",
      "bytes": 1915,
      "sha256": "d0cc910dfced45a8b0cb556f0c161f72770e55f5aff64e73bf00fdd394d239b8",
      "lines": 38,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "src/core/power.ts",
      "path": "src/core/power.ts",
      "category": "núcleo",
      "bytes": 1325,
      "sha256": "9644ea401f16d94b5c248be7315c3d0b4ae6f6c5d6051c2c8ade89d834cac9d7",
      "lines": 21,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "src/core/science.ts",
      "path": "src/core/science.ts",
      "category": "núcleo",
      "bytes": 4892,
      "sha256": "a2b21f2311a3f491abf95c408f29b01e9d19bc23ca997565199710f245305e92",
      "lines": 84,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "src/core/search.ts",
      "path": "src/core/search.ts",
      "category": "núcleo",
      "bytes": 3367,
      "sha256": "27ebae8c4b0b6dda92a23b33fafe0ad21f47fdae97a02625380f7bbf82f759e8",
      "lines": 70,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "src/data/science-data.ts",
      "path": "src/data/science-data.ts",
      "category": "ciência",
      "bytes": 2754,
      "sha256": "1e4db799ecec5a4ed08906f8c759d59c2cbb6cc2324298c5ef6b45e184ab0a66",
      "lines": 101,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "src/main.tsx",
      "path": "src/main.tsx",
      "category": "jogo",
      "bytes": 326,
      "sha256": "c05a4ca1afdd6b72a93d9ae685a388b620c5d18258c770a40c9e9e5ee5faf01b",
      "lines": 9,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "src/persistence/identity.ts",
      "path": "src/persistence/identity.ts",
      "category": "persistência",
      "bytes": 1570,
      "sha256": "1d2cc6eb5bb2f0b1c8917f96a9e677bd21628544971ef362700fde95fd67872e",
      "lines": 28,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "src/persistence/json.ts",
      "path": "src/persistence/json.ts",
      "category": "persistência",
      "bytes": 7093,
      "sha256": "d3314f41efd953ac7fd7df0683daed1f641c60ac8ec09dc059aa6b14ad8a6d5a",
      "lines": 157,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "src/persistence/replay.ts",
      "path": "src/persistence/replay.ts",
      "category": "persistência",
      "bytes": 3049,
      "sha256": "cb0511377a61a121e0c0f5fad721b5f12d5d32ea8c43991c4397f2b0d3f5dbbc",
      "lines": 48,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "src/persistence/store.ts",
      "path": "src/persistence/store.ts",
      "category": "persistência",
      "bytes": 9394,
      "sha256": "addb66e19f58b3ced909342f10cddf88f3caebe009701c055e2a48d698c757cf",
      "lines": 182,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "src/persistence/validation.ts",
      "path": "src/persistence/validation.ts",
      "category": "persistência",
      "bytes": 7358,
      "sha256": "c6a1fb3b100a3dc0bddb48f3697e83b75f72d1ebfb55ed2083c53aad07276567",
      "lines": 109,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "src/styles.css",
      "path": "src/styles.css",
      "category": "jogo",
      "bytes": 55566,
      "sha256": "cdcb2107007161fb79d4a0085a9a212e6f8d3e2c80ea1a22e6e782e5455ed23a",
      "lines": 16,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "src/ui/Dialogs.tsx",
      "path": "src/ui/Dialogs.tsx",
      "category": "jogo",
      "bytes": 6931,
      "sha256": "e7c155466d4148fb530eca7f5548fa16b567281beb65ca3f0659d4ed3d103105",
      "lines": 28,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "src/ui/Icon.tsx",
      "path": "src/ui/Icon.tsx",
      "category": "jogo",
      "bytes": 2199,
      "sha256": "0471a667ea8b051e7ab3ee141f9122cfb38c37f90359af11e50956399e3882ab",
      "lines": 25,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "src/ui/MissionControl.tsx",
      "path": "src/ui/MissionControl.tsx",
      "category": "jogo",
      "bytes": 19023,
      "sha256": "7d064496216b094df4972cd4fbfb07d8d3635ae1f15b243cd7d608ca2d501763",
      "lines": 82,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "src/ui/Observatory.tsx",
      "path": "src/ui/Observatory.tsx",
      "category": "jogo",
      "bytes": 3311,
      "sha256": "e11959892414239d507af0adb1b469adfe24d7784ddf59c7e70c6cb0fe37a313",
      "lines": 31,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "src/ui/OrbitalScene.tsx",
      "path": "src/ui/OrbitalScene.tsx",
      "category": "jogo",
      "bytes": 10592,
      "sha256": "ef2a444b40a80c3efa4ea2f6705fd0848a15ad3b844c576d27773c964587f06d",
      "lines": 149,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "src/ui/Scene.tsx",
      "path": "src/ui/Scene.tsx",
      "category": "jogo",
      "bytes": 3515,
      "sha256": "d7532f52b399cef4e670feb816e66a545835347b9647bd5edb03da162439cded",
      "lines": 42,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "src/ui/Workbench.tsx",
      "path": "src/ui/Workbench.tsx",
      "category": "jogo",
      "bytes": 7292,
      "sha256": "c57019a4316cd54b0ffff061d72d5906bf51da2af3a498a7383278df68328deb",
      "lines": 35,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "src/ui/format.ts",
      "path": "src/ui/format.ts",
      "category": "jogo",
      "bytes": 2871,
      "sha256": "73e1d4a40fda61b7678eaf2c4563257673e917296da8fa29c8b4abee5e4266f6",
      "lines": 58,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "src/ui/learning.ts",
      "path": "src/ui/learning.ts",
      "category": "jogo",
      "bytes": 2603,
      "sha256": "2562f3acab69905346644a5104e2f9dab00dd7378c1c89f5de6a15b5e6faa3fe",
      "lines": 49,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "src/workers/client.ts",
      "path": "src/workers/client.ts",
      "category": "Worker",
      "bytes": 7209,
      "sha256": "1a7766cf5d91ae0a809f7a8d4386d8fcd2cdc6c8ff5318d267b9e5bc778fcfa1",
      "lines": 105,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "src/workers/mission.worker.ts",
      "path": "src/workers/mission.worker.ts",
      "category": "Worker",
      "bytes": 1059,
      "sha256": "ee16c56efce23c82105973bbbce9318dc7485d97488a5eb157466af2430454fb",
      "lines": 20,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "tests-ui/flows.test.mjs",
      "path": "tests-ui/flows.test.mjs",
      "category": "documentação e configuração",
      "bytes": 10308,
      "sha256": "8adda61000e533618475591158893153859fe7e6a35c9246d7ed69cceb3163cb",
      "lines": 174,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "tests/adversarial.test.mts",
      "path": "tests/adversarial.test.mts",
      "category": "testes",
      "bytes": 14204,
      "sha256": "5814a5a4154f5f287de255faea09fcd1c0898bd69bba72f4f4fc48fe48bf6e2c",
      "lines": 237,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "tests/engine.test.mts",
      "path": "tests/engine.test.mts",
      "category": "testes",
      "bytes": 20298,
      "sha256": "0c052ab5ad2eb4ca568cd84787129315715bda11663992f641a2501b6c7f48fc",
      "lines": 350,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "tests/persistence.test.mts",
      "path": "tests/persistence.test.mts",
      "category": "testes",
      "bytes": 7349,
      "sha256": "73f0d5bb4fa46db514e36008fdc40b030f07d073f5ac22bbce791949d9b4f0a6",
      "lines": 156,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "tests/replay.test.mts",
      "path": "tests/replay.test.mts",
      "category": "testes",
      "bytes": 8037,
      "sha256": "2f66fc4a2e3aad53f4b612abdfd93ad9860ce7d924d891bff5dfc14a2ccba7ee",
      "lines": 165,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "tools/README.md",
      "path": "tools/README.md",
      "category": "documentação e configuração",
      "bytes": 3421,
      "sha256": "c58ce8384f700a57e7ec1edcfb50448c114fce3151cef9a75e68bc949a046e85",
      "lines": 47,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "tools/build-evidence-index.py",
      "path": "tools/build-evidence-index.py",
      "category": "documentação e configuração",
      "bytes": 4640,
      "sha256": "a6466ba5565fdec432a1e5599fd20cd66ca0175845005c04a92ac305c5e26462",
      "lines": 49,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "tools/build_study_artifacts.py",
      "path": "tools/build_study_artifacts.py",
      "category": "documentação e configuração",
      "bytes": 24640,
      "sha256": "a6379291c7030342ed4a6a3003de0f9c02ed90adb8ede8a538f7d119674bdc3e",
      "lines": 267,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "tools/package_presentation_kit.py",
      "path": "tools/package_presentation_kit.py",
      "category": "documentação e configuração",
      "bytes": 5048,
      "sha256": "167dd9bf78b5d517b3867001fc53d564f9665bbac047ad840d6a1aaacc395aa5",
      "lines": 72,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "tools/package_release.py",
      "path": "tools/package_release.py",
      "category": "documentação e configuração",
      "bytes": 3299,
      "sha256": "4320f454e198d3dafa4c51dd29582bc02e0999f029b4b465a3f9d6171b6431fb",
      "lines": 60,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "tools/qa_document.py",
      "path": "tools/qa_document.py",
      "category": "documentação e configuração",
      "bytes": 2723,
      "sha256": "f12866410d5e10440035727a27300385d6fab0dbb249dfe2eaf08a8e4db3e4fc",
      "lines": 58,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "tools/rea-audit.mjs",
      "path": "tools/rea-audit.mjs",
      "category": "documentação e configuração",
      "bytes": 11564,
      "sha256": "0ca1b93042889fc04e0402f5528023d66c76175844d2fa3df90fdbc6d02bbf42",
      "lines": 215,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "tools/render_diagrams.py",
      "path": "tools/render_diagrams.py",
      "category": "documentação e configuração",
      "bytes": 6326,
      "sha256": "54abc3d970db1eadb2bd9c80fc7bbc2da13c2d96a9d3d9d47f34ba9c4a43b31c",
      "lines": 99,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "tsconfig.json",
      "path": "tsconfig.json",
      "category": "documentação e configuração",
      "bytes": 472,
      "sha256": "7e5edd587e6fe0fecfebd5597ce1c9d045632baf566345e94e03757bdd75e10b",
      "lines": 11,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "vite.config.ts",
      "path": "vite.config.ts",
      "category": "build e publicação",
      "bytes": 159,
      "sha256": "bcd1fd9812d9ea688a496d78b722f5d330121a1dfc733d308ef38634af99465c",
      "lines": 3,
      "provenance": "base R5: Git blob igual ao commit fixado"
    },
    {
      "id": "web/index.html",
      "path": "web/index.html",
      "category": "portal",
      "bytes": 19822,
      "sha256": "053c416628799b2d57e050cbd32ff1d4224dbdf3233d7a293a1df25ec59ef441",
      "lines": 44,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "web/public-docs/09-VERIFICACAO.md",
      "path": "web/public-docs/09-VERIFICACAO.md",
      "category": "portal",
      "bytes": 3109,
      "sha256": "c75e2eaf43fddbd1f54bf33f5476c932a3fb3a6c23d2681f2d6e9625cb1b7df6",
      "lines": 41,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "web/public-docs/AUTORIA-E-IA.md",
      "path": "web/public-docs/AUTORIA-E-IA.md",
      "category": "portal",
      "bytes": 1594,
      "sha256": "cef1956c02be9939ec102d4931e15f8dfdca45df11bd6de2f93a5d4984927e8b",
      "lines": 25,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "web/public-docs/COMO-USAR.md",
      "path": "web/public-docs/COMO-USAR.md",
      "category": "portal",
      "bytes": 2114,
      "sha256": "3e3a2e4a699f022a45034e8191dc127bc1ea4fcb44d810530f1d58f226044b26",
      "lines": 28,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "web/public-docs/ESTADO-PUBLICO.md",
      "path": "web/public-docs/ESTADO-PUBLICO.md",
      "category": "portal",
      "bytes": 3542,
      "sha256": "d3b5e715b406f995c82bd79149b9e0f8216434c50452409fcf88888da89773fb",
      "lines": 38,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    },
    {
      "id": "web/public-docs/ORIGEM-DOS-DADOS.md",
      "path": "web/public-docs/ORIGEM-DOS-DADOS.md",
      "category": "portal",
      "bytes": 2489,
      "sha256": "61f51b228877b740f17314a8596a82a767d275ffc2f31771ae730485657c2b76",
      "lines": 36,
      "provenance": "R8: arquivo local identificado por hash; commit final registrado separadamente"
    }
  ],
  "imports": [
    {
      "id": "import-1",
      "from": "presentation/src/main.ts",
      "to": "src/core/catalog.ts",
      "specifier": "../../src/core/catalog.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 1
    },
    {
      "id": "import-2",
      "from": "presentation/src/main.ts",
      "to": "src/core/contracts.ts",
      "specifier": "../../src/core/contracts.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 2
    },
    {
      "id": "import-3",
      "from": "presentation/src/main.ts",
      "to": "src/core/contracts.ts",
      "specifier": "../../src/core/contracts.ts",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 3
    },
    {
      "id": "import-4",
      "from": "presentation/src/main.ts",
      "to": "src/core/engine.ts",
      "specifier": "../../src/core/engine.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 4
    },
    {
      "id": "import-5",
      "from": "presentation/src/main.ts",
      "to": "src/core/search.ts",
      "specifier": "../../src/core/search.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 5
    },
    {
      "id": "import-6",
      "from": "presentation/src/main.ts",
      "to": "src/data/science-data.ts",
      "specifier": "../../src/data/science-data.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 6
    },
    {
      "id": "import-7",
      "from": "presentation/src/main.ts",
      "to": "src/core/science.ts",
      "specifier": "../../src/core/science.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 7
    },
    {
      "id": "import-8",
      "from": "scripts/audit-release.mjs",
      "to": "node:fs/promises",
      "specifier": "node:fs/promises",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 1
    },
    {
      "id": "import-9",
      "from": "scripts/audit-release.mjs",
      "to": "node:crypto",
      "specifier": "node:crypto",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 2
    },
    {
      "id": "import-10",
      "from": "scripts/audit-release.mjs",
      "to": "node:url",
      "specifier": "node:url",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 3
    },
    {
      "id": "import-11",
      "from": "scripts/audit-release.mjs",
      "to": "node:path",
      "specifier": "node:path",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 4
    },
    {
      "id": "import-12",
      "from": "scripts/benchmark-engine.mjs",
      "to": "node:assert/strict",
      "specifier": "node:assert/strict",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 1
    },
    {
      "id": "import-13",
      "from": "scripts/benchmark-engine.mjs",
      "to": "node:perf_hooks",
      "specifier": "node:perf_hooks",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 2
    },
    {
      "id": "import-14",
      "from": "scripts/benchmark-engine.mjs",
      "to": "node:os",
      "specifier": "node:os",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 3
    },
    {
      "id": "import-15",
      "from": "scripts/benchmark-engine.mjs",
      "to": "node:fs/promises",
      "specifier": "node:fs/promises",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 4
    },
    {
      "id": "import-16",
      "from": "scripts/benchmark-engine.mjs",
      "to": "node:crypto",
      "specifier": "node:crypto",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 5
    },
    {
      "id": "import-17",
      "from": "scripts/benchmark-engine.mjs",
      "to": "src/core/catalog.ts",
      "specifier": "../src/core/catalog.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 6
    },
    {
      "id": "import-18",
      "from": "scripts/benchmark-engine.mjs",
      "to": "src/core/contracts.ts",
      "specifier": "../src/core/contracts.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 7
    },
    {
      "id": "import-19",
      "from": "scripts/benchmark-engine.mjs",
      "to": "src/core/search.ts",
      "specifier": "../src/core/search.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 8
    },
    {
      "id": "import-20",
      "from": "scripts/benchmark-engine.mjs",
      "to": "src/core/engine.ts",
      "specifier": "../src/core/engine.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 9
    },
    {
      "id": "import-21",
      "from": "scripts/benchmark-engine.mjs",
      "to": "src/data/science-data.ts",
      "specifier": "../src/data/science-data.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 10
    },
    {
      "id": "import-22",
      "from": "scripts/build-beta-site.mjs",
      "to": "node:crypto",
      "specifier": "node:crypto",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 3
    },
    {
      "id": "import-23",
      "from": "scripts/build-beta-site.mjs",
      "to": "node:fs/promises",
      "specifier": "node:fs/promises",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 4
    },
    {
      "id": "import-24",
      "from": "scripts/build-beta-site.mjs",
      "to": "node:path",
      "specifier": "node:path",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 5
    },
    {
      "id": "import-25",
      "from": "scripts/build-beta-site.mjs",
      "to": "node:url",
      "specifier": "node:url",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 6
    },
    {
      "id": "import-26",
      "from": "scripts/build-beta-site.mjs",
      "to": "scripts/build-context-hub.mjs",
      "specifier": "./build-context-hub.mjs",
      "kind": "dynamic-import",
      "typeOnly": false,
      "resolution": "local",
      "line": 9
    },
    {
      "id": "import-27",
      "from": "scripts/build-beta-site.mjs",
      "to": "scripts/build-research-library.mjs",
      "specifier": "./build-research-library.mjs",
      "kind": "dynamic-import",
      "typeOnly": false,
      "resolution": "local",
      "line": 10
    },
    {
      "id": "import-28",
      "from": "scripts/build-context-hub.mjs",
      "to": "node:fs/promises",
      "specifier": "node:fs/promises",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 1
    },
    {
      "id": "import-29",
      "from": "scripts/build-context-hub.mjs",
      "to": "node:path",
      "specifier": "node:path",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 2
    },
    {
      "id": "import-30",
      "from": "scripts/build-context-hub.mjs",
      "to": "node:url",
      "specifier": "node:url",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 3
    },
    {
      "id": "import-31",
      "from": "scripts/build-context-hub.mjs",
      "to": "node:crypto",
      "specifier": "node:crypto",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 4
    },
    {
      "id": "import-32",
      "from": "scripts/build-portable.mjs",
      "to": "npm:esbuild",
      "specifier": "esbuild",
      "kind": "import",
      "typeOnly": false,
      "resolution": "package",
      "line": 2
    },
    {
      "id": "import-33",
      "from": "scripts/build-portable.mjs",
      "to": "node:fs/promises",
      "specifier": "node:fs/promises",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 3
    },
    {
      "id": "import-34",
      "from": "scripts/build-portable.mjs",
      "to": "node:path",
      "specifier": "node:path",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 4
    },
    {
      "id": "import-35",
      "from": "scripts/build-portable.mjs",
      "to": "node:url",
      "specifier": "node:url",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 5
    },
    {
      "id": "import-36",
      "from": "scripts/build-presentation.mjs",
      "to": "npm:esbuild",
      "specifier": "esbuild",
      "kind": "import",
      "typeOnly": false,
      "resolution": "package",
      "line": 2
    },
    {
      "id": "import-37",
      "from": "scripts/build-presentation.mjs",
      "to": "node:fs/promises",
      "specifier": "node:fs/promises",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 3
    },
    {
      "id": "import-38",
      "from": "scripts/build-presentation.mjs",
      "to": "node:path",
      "specifier": "node:path",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 4
    },
    {
      "id": "import-39",
      "from": "scripts/build-presentation.mjs",
      "to": "node:url",
      "specifier": "node:url",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 5
    },
    {
      "id": "import-40",
      "from": "scripts/build-presentation.mjs",
      "to": "node:crypto",
      "specifier": "node:crypto",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 6
    },
    {
      "id": "import-41",
      "from": "scripts/build-research-library.mjs",
      "to": "node:fs/promises",
      "specifier": "node:fs/promises",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 1
    },
    {
      "id": "import-42",
      "from": "scripts/build-research-library.mjs",
      "to": "node:path",
      "specifier": "node:path",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 2
    },
    {
      "id": "import-43",
      "from": "scripts/build-research-library.mjs",
      "to": "node:url",
      "specifier": "node:url",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 3
    },
    {
      "id": "import-44",
      "from": "scripts/build-research-library.mjs",
      "to": "node:crypto",
      "specifier": "node:crypto",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 4
    },
    {
      "id": "import-45",
      "from": "scripts/export-examples.mjs",
      "to": "node:fs/promises",
      "specifier": "node:fs/promises",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 3
    },
    {
      "id": "import-46",
      "from": "scripts/export-examples.mjs",
      "to": "node:crypto",
      "specifier": "node:crypto",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 4
    },
    {
      "id": "import-47",
      "from": "scripts/export-examples.mjs",
      "to": "node:url",
      "specifier": "node:url",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 5
    },
    {
      "id": "import-48",
      "from": "scripts/export-examples.mjs",
      "to": "node:path",
      "specifier": "node:path",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 6
    },
    {
      "id": "import-49",
      "from": "scripts/export-examples.mjs",
      "to": "src/core/catalog.ts",
      "specifier": "../src/core/catalog.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 7
    },
    {
      "id": "import-50",
      "from": "scripts/export-examples.mjs",
      "to": "src/core/contracts.ts",
      "specifier": "../src/core/contracts.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 8
    },
    {
      "id": "import-51",
      "from": "scripts/export-examples.mjs",
      "to": "src/core/engine.ts",
      "specifier": "../src/core/engine.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 9
    },
    {
      "id": "import-52",
      "from": "scripts/export-examples.mjs",
      "to": "src/core/search.ts",
      "specifier": "../src/core/search.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 10
    },
    {
      "id": "import-53",
      "from": "scripts/export-examples.mjs",
      "to": "src/persistence/replay.ts",
      "specifier": "../src/persistence/replay.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 11
    },
    {
      "id": "import-54",
      "from": "scripts/export-examples.mjs",
      "to": "src/data/science-data.ts",
      "specifier": "../src/data/science-data.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 12
    },
    {
      "id": "import-55",
      "from": "scripts/prepare-vercel-static.mjs",
      "to": "node:fs/promises",
      "specifier": "node:fs/promises",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 1
    },
    {
      "id": "import-56",
      "from": "scripts/prepare-vercel-static.mjs",
      "to": "node:path",
      "specifier": "node:path",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 2
    },
    {
      "id": "import-57",
      "from": "scripts/prepare-vercel-static.mjs",
      "to": "node:url",
      "specifier": "node:url",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 3
    },
    {
      "id": "import-58",
      "from": "scripts/prepare-vercel-static.mjs",
      "to": "node:crypto",
      "specifier": "node:crypto",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 4
    },
    {
      "id": "import-59",
      "from": "scripts/recover-archives.mjs",
      "to": "node:fs",
      "specifier": "node:fs",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 1
    },
    {
      "id": "import-60",
      "from": "scripts/recover-archives.mjs",
      "to": "node:fs/promises",
      "specifier": "node:fs/promises",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 2
    },
    {
      "id": "import-61",
      "from": "scripts/recover-archives.mjs",
      "to": "node:path",
      "specifier": "node:path",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 3
    },
    {
      "id": "import-62",
      "from": "scripts/recover-archives.mjs",
      "to": "node:url",
      "specifier": "node:url",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 4
    },
    {
      "id": "import-63",
      "from": "scripts/recover-archives.mjs",
      "to": "node:crypto",
      "specifier": "node:crypto",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 5
    },
    {
      "id": "import-64",
      "from": "scripts/recover-archives.mjs",
      "to": "node:stream",
      "specifier": "node:stream",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 6
    },
    {
      "id": "import-65",
      "from": "scripts/recover-archives.mjs",
      "to": "node:stream/promises",
      "specifier": "node:stream/promises",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 7
    },
    {
      "id": "import-66",
      "from": "scripts/recover-archives.mjs",
      "to": "node:zlib",
      "specifier": "node:zlib",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 8
    },
    {
      "id": "import-67",
      "from": "scripts/serve-beta.mjs",
      "to": "node:http",
      "specifier": "node:http",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 1
    },
    {
      "id": "import-68",
      "from": "scripts/serve-beta.mjs",
      "to": "node:fs",
      "specifier": "node:fs",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 2
    },
    {
      "id": "import-69",
      "from": "scripts/serve-beta.mjs",
      "to": "node:fs/promises",
      "specifier": "node:fs/promises",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 3
    },
    {
      "id": "import-70",
      "from": "scripts/serve-beta.mjs",
      "to": "node:path",
      "specifier": "node:path",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 4
    },
    {
      "id": "import-71",
      "from": "scripts/serve-beta.mjs",
      "to": "node:url",
      "specifier": "node:url",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 5
    },
    {
      "id": "import-72",
      "from": "scripts/serve-presentation-kit.mjs",
      "to": "node:http",
      "specifier": "node:http",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 3
    },
    {
      "id": "import-73",
      "from": "scripts/serve-presentation-kit.mjs",
      "to": "node:fs",
      "specifier": "node:fs",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 4
    },
    {
      "id": "import-74",
      "from": "scripts/serve-presentation-kit.mjs",
      "to": "node:fs/promises",
      "specifier": "node:fs/promises",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 5
    },
    {
      "id": "import-75",
      "from": "scripts/serve-presentation-kit.mjs",
      "to": "node:crypto",
      "specifier": "node:crypto",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 6
    },
    {
      "id": "import-76",
      "from": "scripts/serve-presentation-kit.mjs",
      "to": "node:path",
      "specifier": "node:path",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 7
    },
    {
      "id": "import-77",
      "from": "scripts/serve-presentation-kit.mjs",
      "to": "node:url",
      "specifier": "node:url",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 8
    },
    {
      "id": "import-78",
      "from": "scripts/serve.mjs",
      "to": "node:http",
      "specifier": "node:http",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 2
    },
    {
      "id": "import-79",
      "from": "scripts/serve.mjs",
      "to": "node:fs",
      "specifier": "node:fs",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 3
    },
    {
      "id": "import-80",
      "from": "scripts/serve.mjs",
      "to": "node:fs/promises",
      "specifier": "node:fs/promises",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 4
    },
    {
      "id": "import-81",
      "from": "scripts/serve.mjs",
      "to": "node:path",
      "specifier": "node:path",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 5
    },
    {
      "id": "import-82",
      "from": "scripts/serve.mjs",
      "to": "node:url",
      "specifier": "node:url",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 6
    },
    {
      "id": "import-83",
      "from": "scripts/smoke-presentation-kit.mjs",
      "to": "node:assert/strict",
      "specifier": "node:assert/strict",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 3
    },
    {
      "id": "import-84",
      "from": "scripts/smoke-presentation-kit.mjs",
      "to": "node:http",
      "specifier": "node:http",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 4
    },
    {
      "id": "import-85",
      "from": "scripts/smoke-presentation-kit.mjs",
      "to": "node:crypto",
      "specifier": "node:crypto",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 5
    },
    {
      "id": "import-86",
      "from": "scripts/smoke-presentation-kit.mjs",
      "to": "node:fs/promises",
      "specifier": "node:fs/promises",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 6
    },
    {
      "id": "import-87",
      "from": "scripts/smoke-presentation-kit.mjs",
      "to": "node:path",
      "specifier": "node:path",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 7
    },
    {
      "id": "import-88",
      "from": "scripts/smoke-presentation-kit.mjs",
      "to": "node:url",
      "specifier": "node:url",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 8
    },
    {
      "id": "import-89",
      "from": "scripts/smoke-presentation-kit.mjs",
      "to": "scripts/serve-presentation-kit.mjs",
      "specifier": "./serve-presentation-kit.mjs",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 9
    },
    {
      "id": "import-90",
      "from": "scripts/smoke-server.mjs",
      "to": "node:assert/strict",
      "specifier": "node:assert/strict",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 1
    },
    {
      "id": "import-91",
      "from": "scripts/smoke-server.mjs",
      "to": "node:child_process",
      "specifier": "node:child_process",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 2
    },
    {
      "id": "import-92",
      "from": "scripts/smoke-server.mjs",
      "to": "node:http",
      "specifier": "node:http",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 3
    },
    {
      "id": "import-93",
      "from": "scripts/smoke-server.mjs",
      "to": "node:fs/promises",
      "specifier": "node:fs/promises",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 4
    },
    {
      "id": "import-94",
      "from": "scripts/smoke-server.mjs",
      "to": "node:crypto",
      "specifier": "node:crypto",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 5
    },
    {
      "id": "import-95",
      "from": "scripts/smoke-server.mjs",
      "to": "node:url",
      "specifier": "node:url",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 6
    },
    {
      "id": "import-96",
      "from": "scripts/test-beta-site.mjs",
      "to": "node:assert/strict",
      "specifier": "node:assert/strict",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 6
    },
    {
      "id": "import-97",
      "from": "scripts/test-beta-site.mjs",
      "to": "node:crypto",
      "specifier": "node:crypto",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 7
    },
    {
      "id": "import-98",
      "from": "scripts/test-beta-site.mjs",
      "to": "node:fs/promises",
      "specifier": "node:fs/promises",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 8
    },
    {
      "id": "import-99",
      "from": "scripts/test-beta-site.mjs",
      "to": "node:net",
      "specifier": "node:net",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 9
    },
    {
      "id": "import-100",
      "from": "scripts/test-beta-site.mjs",
      "to": "node:child_process",
      "specifier": "node:child_process",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 10
    },
    {
      "id": "import-101",
      "from": "scripts/test-beta-site.mjs",
      "to": "node:path",
      "specifier": "node:path",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 11
    },
    {
      "id": "import-102",
      "from": "scripts/test-beta-site.mjs",
      "to": "node:url",
      "specifier": "node:url",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 12
    },
    {
      "id": "import-103",
      "from": "scripts/test-beta-site.mjs",
      "to": "npm:jsdom",
      "specifier": "jsdom",
      "kind": "import",
      "typeOnly": false,
      "resolution": "package",
      "line": 13
    },
    {
      "id": "import-104",
      "from": "scripts/test-beta-site.mjs",
      "to": "npm:typescript",
      "specifier": "typescript/unstable/ast",
      "kind": "import",
      "typeOnly": false,
      "resolution": "package",
      "line": 14
    },
    {
      "id": "import-105",
      "from": "scripts/test-beta-site.mjs",
      "to": "npm:typescript",
      "specifier": "typescript/unstable/sync",
      "kind": "import",
      "typeOnly": false,
      "resolution": "package",
      "line": 15
    },
    {
      "id": "import-106",
      "from": "scripts/test-context-hub.mjs",
      "to": "node:assert/strict",
      "specifier": "node:assert/strict",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 6
    },
    {
      "id": "import-107",
      "from": "scripts/test-context-hub.mjs",
      "to": "node:fs/promises",
      "specifier": "node:fs/promises",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 7
    },
    {
      "id": "import-108",
      "from": "scripts/test-context-hub.mjs",
      "to": "node:crypto",
      "specifier": "node:crypto",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 8
    },
    {
      "id": "import-109",
      "from": "scripts/test-context-hub.mjs",
      "to": "node:path",
      "specifier": "node:path",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 9
    },
    {
      "id": "import-110",
      "from": "scripts/test-context-hub.mjs",
      "to": "node:url",
      "specifier": "node:url",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 10
    },
    {
      "id": "import-111",
      "from": "scripts/test-context-hub.mjs",
      "to": "npm:jsdom",
      "specifier": "jsdom",
      "kind": "import",
      "typeOnly": false,
      "resolution": "package",
      "line": 11
    },
    {
      "id": "import-112",
      "from": "scripts/test-presentation.mjs",
      "to": "node:assert/strict",
      "specifier": "node:assert/strict",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 6
    },
    {
      "id": "import-113",
      "from": "scripts/test-presentation.mjs",
      "to": "node:crypto",
      "specifier": "node:crypto",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 7
    },
    {
      "id": "import-114",
      "from": "scripts/test-presentation.mjs",
      "to": "node:fs/promises",
      "specifier": "node:fs/promises",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 8
    },
    {
      "id": "import-115",
      "from": "scripts/test-presentation.mjs",
      "to": "node:path",
      "specifier": "node:path",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 9
    },
    {
      "id": "import-116",
      "from": "scripts/test-presentation.mjs",
      "to": "node:url",
      "specifier": "node:url",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 10
    },
    {
      "id": "import-117",
      "from": "scripts/test-presentation.mjs",
      "to": "npm:jsdom",
      "specifier": "jsdom",
      "kind": "import",
      "typeOnly": false,
      "resolution": "package",
      "line": 11
    },
    {
      "id": "import-118",
      "from": "scripts/test-presentation.mjs",
      "to": "src/core/catalog.ts",
      "specifier": "../src/core/catalog.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 12
    },
    {
      "id": "import-119",
      "from": "scripts/test-presentation.mjs",
      "to": "src/core/engine.ts",
      "specifier": "../src/core/engine.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 13
    },
    {
      "id": "import-120",
      "from": "scripts/test-presentation.mjs",
      "to": "src/core/search.ts",
      "specifier": "../src/core/search.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 14
    },
    {
      "id": "import-121",
      "from": "scripts/test-presentation.mjs",
      "to": "src/data/science-data.ts",
      "specifier": "../src/data/science-data.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 15
    },
    {
      "id": "import-122",
      "from": "scripts/test-ui.mjs",
      "to": "npm:esbuild",
      "specifier": "esbuild",
      "kind": "import",
      "typeOnly": false,
      "resolution": "package",
      "line": 1
    },
    {
      "id": "import-123",
      "from": "scripts/test-ui.mjs",
      "to": "node:fs/promises",
      "specifier": "node:fs/promises",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 2
    },
    {
      "id": "import-124",
      "from": "scripts/test-ui.mjs",
      "to": "node:child_process",
      "specifier": "node:child_process",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 3
    },
    {
      "id": "import-125",
      "from": "scripts/test-ui.mjs",
      "to": "node:url",
      "specifier": "node:url",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 4
    },
    {
      "id": "import-126",
      "from": "scripts/test-ui.mjs",
      "to": "node:path",
      "specifier": "node:path",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 5
    },
    {
      "id": "import-127",
      "from": "scripts/verify-science-data.mjs",
      "to": "node:assert/strict",
      "specifier": "node:assert/strict",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 2
    },
    {
      "id": "import-128",
      "from": "scripts/verify-science-data.mjs",
      "to": "node:crypto",
      "specifier": "node:crypto",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 3
    },
    {
      "id": "import-129",
      "from": "scripts/verify-science-data.mjs",
      "to": "node:fs/promises",
      "specifier": "node:fs/promises",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 4
    },
    {
      "id": "import-130",
      "from": "scripts/verify-science-data.mjs",
      "to": "src/data/science-data.ts",
      "specifier": "../src/data/science-data.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 5
    },
    {
      "id": "import-131",
      "from": "src/App.tsx",
      "to": "npm:react",
      "specifier": "react",
      "kind": "import",
      "typeOnly": false,
      "resolution": "package",
      "line": 1
    },
    {
      "id": "import-132",
      "from": "src/App.tsx",
      "to": "src/core/catalog.ts",
      "specifier": "./core/catalog.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 2
    },
    {
      "id": "import-133",
      "from": "src/App.tsx",
      "to": "src/core/contracts.ts",
      "specifier": "./core/contracts.ts",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 3
    },
    {
      "id": "import-134",
      "from": "src/App.tsx",
      "to": "src/workers/client.ts",
      "specifier": "./workers/client.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 4
    },
    {
      "id": "import-135",
      "from": "src/App.tsx",
      "to": "src/persistence/store.ts",
      "specifier": "./persistence/store.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 5
    },
    {
      "id": "import-136",
      "from": "src/App.tsx",
      "to": "src/persistence/store.ts",
      "specifier": "./persistence/store.ts",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 6
    },
    {
      "id": "import-137",
      "from": "src/App.tsx",
      "to": "src/persistence/replay.ts",
      "specifier": "./persistence/replay.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 7
    },
    {
      "id": "import-138",
      "from": "src/App.tsx",
      "to": "src/ui/Icon.tsx",
      "specifier": "./ui/Icon.tsx",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 8
    },
    {
      "id": "import-139",
      "from": "src/App.tsx",
      "to": "src/ui/Observatory.tsx",
      "specifier": "./ui/Observatory.tsx",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 9
    },
    {
      "id": "import-140",
      "from": "src/App.tsx",
      "to": "src/ui/Workbench.tsx",
      "specifier": "./ui/Workbench.tsx",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 10
    },
    {
      "id": "import-141",
      "from": "src/App.tsx",
      "to": "src/ui/MissionControl.tsx",
      "specifier": "./ui/MissionControl.tsx",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 11
    },
    {
      "id": "import-142",
      "from": "src/App.tsx",
      "to": "src/ui/Dialogs.tsx",
      "specifier": "./ui/Dialogs.tsx",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 12
    },
    {
      "id": "import-143",
      "from": "src/App.tsx",
      "to": "src/ui/learning.ts",
      "specifier": "./ui/learning.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 13
    },
    {
      "id": "import-144",
      "from": "src/App.tsx",
      "to": "src/ui/learning.ts",
      "specifier": "./ui/learning.ts",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 14
    },
    {
      "id": "import-145",
      "from": "src/App.tsx",
      "to": "src/ui/format.ts",
      "specifier": "./ui/format.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 15
    },
    {
      "id": "import-146",
      "from": "src/core/catalog.ts",
      "to": "src/core/contracts.ts",
      "specifier": "./contracts.ts",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 1
    },
    {
      "id": "import-147",
      "from": "src/core/engine.ts",
      "to": "src/core/contracts.ts",
      "specifier": "./contracts.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 1
    },
    {
      "id": "import-148",
      "from": "src/core/engine.ts",
      "to": "src/core/contracts.ts",
      "specifier": "./contracts.ts",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 2
    },
    {
      "id": "import-149",
      "from": "src/core/engine.ts",
      "to": "src/core/catalog.ts",
      "specifier": "./catalog.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 3
    },
    {
      "id": "import-150",
      "from": "src/core/engine.ts",
      "to": "src/data/science-data.ts",
      "specifier": "../data/science-data.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 4
    },
    {
      "id": "import-151",
      "from": "src/core/engine.ts",
      "to": "src/core/science.ts",
      "specifier": "./science.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 5
    },
    {
      "id": "import-152",
      "from": "src/core/engine.ts",
      "to": "src/core/exact.ts",
      "specifier": "./exact.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 6
    },
    {
      "id": "import-153",
      "from": "src/core/engine.ts",
      "to": "src/core/exact.ts",
      "specifier": "./exact.ts",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 7
    },
    {
      "id": "import-154",
      "from": "src/core/engine.ts",
      "to": "src/core/power.ts",
      "specifier": "./power.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 8
    },
    {
      "id": "import-155",
      "from": "src/core/engine.ts",
      "to": "src/core/power.ts",
      "specifier": "./power.ts",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 9
    },
    {
      "id": "import-156",
      "from": "src/core/power.ts",
      "to": "src/core/exact.ts",
      "specifier": "./exact.ts",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 1
    },
    {
      "id": "import-157",
      "from": "src/core/power.ts",
      "to": "src/core/exact.ts",
      "specifier": "./exact.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 2
    },
    {
      "id": "import-158",
      "from": "src/core/science.ts",
      "to": "src/core/contracts.ts",
      "specifier": "./contracts.ts",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 1
    },
    {
      "id": "import-159",
      "from": "src/core/search.ts",
      "to": "src/core/catalog.ts",
      "specifier": "./catalog.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 1
    },
    {
      "id": "import-160",
      "from": "src/core/search.ts",
      "to": "src/core/contracts.ts",
      "specifier": "./contracts.ts",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 2
    },
    {
      "id": "import-161",
      "from": "src/core/search.ts",
      "to": "src/core/engine.ts",
      "specifier": "./engine.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 3
    },
    {
      "id": "import-162",
      "from": "src/data/science-data.ts",
      "to": "src/core/contracts.ts",
      "specifier": "../core/contracts.ts",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 1
    },
    {
      "id": "import-163",
      "from": "src/main.tsx",
      "to": "npm:react",
      "specifier": "react",
      "kind": "import",
      "typeOnly": false,
      "resolution": "package",
      "line": 1
    },
    {
      "id": "import-164",
      "from": "src/main.tsx",
      "to": "npm:react-dom",
      "specifier": "react-dom/client",
      "kind": "import",
      "typeOnly": false,
      "resolution": "package",
      "line": 2
    },
    {
      "id": "import-165",
      "from": "src/main.tsx",
      "to": "src/App.tsx",
      "specifier": "./App.tsx",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 3
    },
    {
      "id": "import-166",
      "from": "src/main.tsx",
      "to": "src/styles.css",
      "specifier": "./styles.css",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 4
    },
    {
      "id": "import-167",
      "from": "src/persistence/identity.ts",
      "to": "src/core/contracts.ts",
      "specifier": "../core/contracts.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 1
    },
    {
      "id": "import-168",
      "from": "src/persistence/identity.ts",
      "to": "src/core/contracts.ts",
      "specifier": "../core/contracts.ts",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 2
    },
    {
      "id": "import-169",
      "from": "src/persistence/identity.ts",
      "to": "src/data/science-data.ts",
      "specifier": "../data/science-data.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 3
    },
    {
      "id": "import-170",
      "from": "src/persistence/identity.ts",
      "to": "src/persistence/json.ts",
      "specifier": "./json.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 4
    },
    {
      "id": "import-171",
      "from": "src/persistence/identity.ts",
      "to": "src/persistence/validation.ts",
      "specifier": "./validation.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 5
    },
    {
      "id": "import-172",
      "from": "src/persistence/replay.ts",
      "to": "src/core/contracts.ts",
      "specifier": "../core/contracts.ts",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 1
    },
    {
      "id": "import-173",
      "from": "src/persistence/replay.ts",
      "to": "src/core/engine.ts",
      "specifier": "../core/engine.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 2
    },
    {
      "id": "import-174",
      "from": "src/persistence/replay.ts",
      "to": "src/persistence/identity.ts",
      "specifier": "./identity.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 3
    },
    {
      "id": "import-175",
      "from": "src/persistence/replay.ts",
      "to": "src/persistence/json.ts",
      "specifier": "./json.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 4
    },
    {
      "id": "import-176",
      "from": "src/persistence/replay.ts",
      "to": "src/persistence/validation.ts",
      "specifier": "./validation.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 5
    },
    {
      "id": "import-177",
      "from": "src/persistence/replay.ts",
      "to": "src/persistence/json.ts",
      "specifier": "./json.ts",
      "kind": "re-export",
      "typeOnly": false,
      "resolution": "local",
      "line": 7
    },
    {
      "id": "import-178",
      "from": "src/persistence/store.ts",
      "to": "src/core/contracts.ts",
      "specifier": "../core/contracts.ts",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 1
    },
    {
      "id": "import-179",
      "from": "src/persistence/store.ts",
      "to": "src/persistence/identity.ts",
      "specifier": "./identity.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 2
    },
    {
      "id": "import-180",
      "from": "src/persistence/store.ts",
      "to": "src/persistence/json.ts",
      "specifier": "./json.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 3
    },
    {
      "id": "import-181",
      "from": "src/persistence/store.ts",
      "to": "src/persistence/validation.ts",
      "specifier": "./validation.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 4
    },
    {
      "id": "import-182",
      "from": "src/persistence/validation.ts",
      "to": "src/core/contracts.ts",
      "specifier": "../core/contracts.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 1
    },
    {
      "id": "import-183",
      "from": "src/persistence/validation.ts",
      "to": "src/core/contracts.ts",
      "specifier": "../core/contracts.ts",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 2
    },
    {
      "id": "import-184",
      "from": "src/persistence/validation.ts",
      "to": "src/persistence/json.ts",
      "specifier": "./json.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 3
    },
    {
      "id": "import-185",
      "from": "src/ui/Dialogs.tsx",
      "to": "npm:react",
      "specifier": "react",
      "kind": "import",
      "typeOnly": false,
      "resolution": "package",
      "line": 1
    },
    {
      "id": "import-186",
      "from": "src/ui/Dialogs.tsx",
      "to": "npm:react",
      "specifier": "react",
      "kind": "import",
      "typeOnly": true,
      "resolution": "package",
      "line": 2
    },
    {
      "id": "import-187",
      "from": "src/ui/Dialogs.tsx",
      "to": "src/core/contracts.ts",
      "specifier": "../core/contracts.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 3
    },
    {
      "id": "import-188",
      "from": "src/ui/Dialogs.tsx",
      "to": "src/core/catalog.ts",
      "specifier": "../core/catalog.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 4
    },
    {
      "id": "import-189",
      "from": "src/ui/Dialogs.tsx",
      "to": "src/data/science-data.ts",
      "specifier": "../data/science-data.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 5
    },
    {
      "id": "import-190",
      "from": "src/ui/Dialogs.tsx",
      "to": "src/persistence/store.ts",
      "specifier": "../persistence/store.ts",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 6
    },
    {
      "id": "import-191",
      "from": "src/ui/Dialogs.tsx",
      "to": "src/ui/Icon.tsx",
      "specifier": "./Icon.tsx",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 7
    },
    {
      "id": "import-192",
      "from": "src/ui/Dialogs.tsx",
      "to": "src/ui/format.ts",
      "specifier": "./format.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 8
    },
    {
      "id": "import-193",
      "from": "src/ui/Icon.tsx",
      "to": "npm:react",
      "specifier": "react",
      "kind": "import",
      "typeOnly": true,
      "resolution": "package",
      "line": 1
    },
    {
      "id": "import-194",
      "from": "src/ui/MissionControl.tsx",
      "to": "npm:react",
      "specifier": "react",
      "kind": "import",
      "typeOnly": false,
      "resolution": "package",
      "line": 1
    },
    {
      "id": "import-195",
      "from": "src/ui/MissionControl.tsx",
      "to": "src/core/catalog.ts",
      "specifier": "../core/catalog.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 2
    },
    {
      "id": "import-196",
      "from": "src/ui/MissionControl.tsx",
      "to": "src/core/contracts.ts",
      "specifier": "../core/contracts.ts",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 3
    },
    {
      "id": "import-197",
      "from": "src/ui/MissionControl.tsx",
      "to": "src/ui/Icon.tsx",
      "specifier": "./Icon.tsx",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 4
    },
    {
      "id": "import-198",
      "from": "src/ui/MissionControl.tsx",
      "to": "src/ui/format.ts",
      "specifier": "./format.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 5
    },
    {
      "id": "import-199",
      "from": "src/ui/Observatory.tsx",
      "to": "src/core/catalog.ts",
      "specifier": "../core/catalog.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 1
    },
    {
      "id": "import-200",
      "from": "src/ui/Observatory.tsx",
      "to": "src/core/contracts.ts",
      "specifier": "../core/contracts.ts",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 2
    },
    {
      "id": "import-201",
      "from": "src/ui/Observatory.tsx",
      "to": "src/ui/Icon.tsx",
      "specifier": "./Icon.tsx",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 3
    },
    {
      "id": "import-202",
      "from": "src/ui/Observatory.tsx",
      "to": "src/ui/Scene.tsx",
      "specifier": "./Scene.tsx",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 4
    },
    {
      "id": "import-203",
      "from": "src/ui/Observatory.tsx",
      "to": "src/ui/format.ts",
      "specifier": "./format.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 5
    },
    {
      "id": "import-204",
      "from": "src/ui/OrbitalScene.tsx",
      "to": "npm:react",
      "specifier": "react",
      "kind": "import",
      "typeOnly": false,
      "resolution": "package",
      "line": 1
    },
    {
      "id": "import-205",
      "from": "src/ui/OrbitalScene.tsx",
      "to": "npm:three",
      "specifier": "three",
      "kind": "import",
      "typeOnly": false,
      "resolution": "package",
      "line": 2
    },
    {
      "id": "import-206",
      "from": "src/ui/OrbitalScene.tsx",
      "to": "src/ui/Scene.tsx",
      "specifier": "./Scene.tsx",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 3
    },
    {
      "id": "import-207",
      "from": "src/ui/Scene.tsx",
      "to": "npm:react",
      "specifier": "react",
      "kind": "import",
      "typeOnly": false,
      "resolution": "package",
      "line": 1
    },
    {
      "id": "import-208",
      "from": "src/ui/Scene.tsx",
      "to": "npm:react",
      "specifier": "react",
      "kind": "import",
      "typeOnly": true,
      "resolution": "package",
      "line": 2
    },
    {
      "id": "import-209",
      "from": "src/ui/Scene.tsx",
      "to": "src/ui/Icon.tsx",
      "specifier": "./Icon.tsx",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 3
    },
    {
      "id": "import-210",
      "from": "src/ui/Scene.tsx",
      "to": "src/ui/OrbitalScene.tsx",
      "specifier": "./OrbitalScene.tsx",
      "kind": "dynamic-import",
      "typeOnly": false,
      "resolution": "local",
      "line": 5
    },
    {
      "id": "import-211",
      "from": "src/ui/Workbench.tsx",
      "to": "src/core/catalog.ts",
      "specifier": "../core/catalog.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 1
    },
    {
      "id": "import-212",
      "from": "src/ui/Workbench.tsx",
      "to": "src/core/contracts.ts",
      "specifier": "../core/contracts.ts",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 2
    },
    {
      "id": "import-213",
      "from": "src/ui/Workbench.tsx",
      "to": "src/ui/Icon.tsx",
      "specifier": "./Icon.tsx",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 3
    },
    {
      "id": "import-214",
      "from": "src/ui/Workbench.tsx",
      "to": "src/ui/Icon.tsx",
      "specifier": "./Icon.tsx",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 4
    },
    {
      "id": "import-215",
      "from": "src/ui/Workbench.tsx",
      "to": "src/ui/format.ts",
      "specifier": "./format.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 5
    },
    {
      "id": "import-216",
      "from": "src/ui/Workbench.tsx",
      "to": "src/ui/learning.ts",
      "specifier": "./learning.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 6
    },
    {
      "id": "import-217",
      "from": "src/ui/Workbench.tsx",
      "to": "src/ui/learning.ts",
      "specifier": "./learning.ts",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 7
    },
    {
      "id": "import-218",
      "from": "src/ui/format.ts",
      "to": "src/core/catalog.ts",
      "specifier": "../core/catalog.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 1
    },
    {
      "id": "import-219",
      "from": "src/ui/format.ts",
      "to": "src/core/contracts.ts",
      "specifier": "../core/contracts.ts",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 2
    },
    {
      "id": "import-220",
      "from": "src/ui/learning.ts",
      "to": "src/core/contracts.ts",
      "specifier": "../core/contracts.ts",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 1
    },
    {
      "id": "import-221",
      "from": "src/workers/client.ts",
      "to": "src/core/contracts.ts",
      "specifier": "../core/contracts.ts",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 1
    },
    {
      "id": "import-222",
      "from": "src/workers/client.ts",
      "to": "src/core/catalog.ts",
      "specifier": "../core/catalog.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 2
    },
    {
      "id": "import-223",
      "from": "src/workers/client.ts",
      "to": "src/persistence/validation.ts",
      "specifier": "../persistence/validation.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 3
    },
    {
      "id": "import-224",
      "from": "src/workers/client.ts",
      "to": "src/core/engine.ts",
      "specifier": "../core/engine.ts",
      "kind": "dynamic-import",
      "typeOnly": false,
      "resolution": "local",
      "line": 56
    },
    {
      "id": "import-225",
      "from": "src/workers/client.ts",
      "to": "src/core/search.ts",
      "specifier": "../core/search.ts",
      "kind": "dynamic-import",
      "typeOnly": false,
      "resolution": "local",
      "line": 57
    },
    {
      "id": "import-226",
      "from": "src/workers/client.ts",
      "to": "src/workers/mission.worker.ts",
      "specifier": "./mission.worker.ts",
      "kind": "worker-entry",
      "typeOnly": false,
      "resolution": "local",
      "line": 65
    },
    {
      "id": "import-227",
      "from": "src/workers/mission.worker.ts",
      "to": "src/core/engine.ts",
      "specifier": "../core/engine.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 1
    },
    {
      "id": "import-228",
      "from": "src/workers/mission.worker.ts",
      "to": "src/core/search.ts",
      "specifier": "../core/search.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 2
    },
    {
      "id": "import-229",
      "from": "src/workers/mission.worker.ts",
      "to": "src/core/contracts.ts",
      "specifier": "../core/contracts.ts",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 3
    },
    {
      "id": "import-230",
      "from": "tests-ui/flows.test.mjs",
      "to": "node:test",
      "specifier": "node:test",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 1
    },
    {
      "id": "import-231",
      "from": "tests-ui/flows.test.mjs",
      "to": "node:assert/strict",
      "specifier": "node:assert/strict",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 2
    },
    {
      "id": "import-232",
      "from": "tests-ui/flows.test.mjs",
      "to": "npm:react",
      "specifier": "react",
      "kind": "import",
      "typeOnly": false,
      "resolution": "package",
      "line": 3
    },
    {
      "id": "import-233",
      "from": "tests-ui/flows.test.mjs",
      "to": "npm:jsdom",
      "specifier": "jsdom",
      "kind": "import",
      "typeOnly": false,
      "resolution": "package",
      "line": 4
    },
    {
      "id": "import-234",
      "from": "tests-ui/flows.test.mjs",
      "to": "npm:fake-indexeddb",
      "specifier": "fake-indexeddb",
      "kind": "import",
      "typeOnly": false,
      "resolution": "package",
      "line": 5
    },
    {
      "id": "import-235",
      "from": "tests-ui/flows.test.mjs",
      "to": "npm:@testing-library/react",
      "specifier": "@testing-library/react",
      "kind": "dynamic-import",
      "typeOnly": false,
      "resolution": "package",
      "line": 17
    },
    {
      "id": "import-236",
      "from": "tests-ui/flows.test.mjs",
      "to": "src/App.tsx",
      "specifier": "../src/App.tsx",
      "kind": "dynamic-import",
      "typeOnly": false,
      "resolution": "local",
      "line": 18
    },
    {
      "id": "import-237",
      "from": "tests-ui/flows.test.mjs",
      "to": "src/core/catalog.ts",
      "specifier": "../src/core/catalog.ts",
      "kind": "dynamic-import",
      "typeOnly": false,
      "resolution": "local",
      "line": 19
    },
    {
      "id": "import-238",
      "from": "tests-ui/flows.test.mjs",
      "to": "src/core/engine.ts",
      "specifier": "../src/core/engine.ts",
      "kind": "dynamic-import",
      "typeOnly": false,
      "resolution": "local",
      "line": 20
    },
    {
      "id": "import-239",
      "from": "tests-ui/flows.test.mjs",
      "to": "src/persistence/replay.ts",
      "specifier": "../src/persistence/replay.ts",
      "kind": "dynamic-import",
      "typeOnly": false,
      "resolution": "local",
      "line": 21
    },
    {
      "id": "import-240",
      "from": "tests-ui/flows.test.mjs",
      "to": "src/persistence/store.ts",
      "specifier": "../src/persistence/store.ts",
      "kind": "dynamic-import",
      "typeOnly": false,
      "resolution": "local",
      "line": 22
    },
    {
      "id": "import-241",
      "from": "tests-ui/flows.test.mjs",
      "to": "src/ui/learning.ts",
      "specifier": "../src/ui/learning.ts",
      "kind": "dynamic-import",
      "typeOnly": false,
      "resolution": "local",
      "line": 23
    },
    {
      "id": "import-242",
      "from": "tests/adversarial.test.mts",
      "to": "node:test",
      "specifier": "node:test",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 2
    },
    {
      "id": "import-243",
      "from": "tests/adversarial.test.mts",
      "to": "node:assert/strict",
      "specifier": "node:assert/strict",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 3
    },
    {
      "id": "import-244",
      "from": "tests/adversarial.test.mts",
      "to": "src/core/contracts.ts",
      "specifier": "../src/core/contracts.ts",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 4
    },
    {
      "id": "import-245",
      "from": "tests/adversarial.test.mts",
      "to": "src/core/engine.ts",
      "specifier": "../src/core/engine.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 5
    },
    {
      "id": "import-246",
      "from": "tests/adversarial.test.mts",
      "to": "src/core/search.ts",
      "specifier": "../src/core/search.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 6
    },
    {
      "id": "import-247",
      "from": "tests/adversarial.test.mts",
      "to": "src/core/science.ts",
      "specifier": "../src/core/science.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 7
    },
    {
      "id": "import-248",
      "from": "tests/adversarial.test.mts",
      "to": "src/data/science-data.ts",
      "specifier": "../src/data/science-data.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 8
    },
    {
      "id": "import-249",
      "from": "tests/adversarial.test.mts",
      "to": "src/persistence/json.ts",
      "specifier": "../src/persistence/json.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 9
    },
    {
      "id": "import-250",
      "from": "tests/adversarial.test.mts",
      "to": "src/persistence/replay.ts",
      "specifier": "../src/persistence/replay.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 10
    },
    {
      "id": "import-251",
      "from": "tests/adversarial.test.mts",
      "to": "src/persistence/identity.ts",
      "specifier": "../src/persistence/identity.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 11
    },
    {
      "id": "import-252",
      "from": "tests/adversarial.test.mts",
      "to": "src/workers/client.ts",
      "specifier": "../src/workers/client.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 12
    },
    {
      "id": "import-253",
      "from": "tests/engine.test.mts",
      "to": "node:assert/strict",
      "specifier": "node:assert/strict",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 1
    },
    {
      "id": "import-254",
      "from": "tests/engine.test.mts",
      "to": "node:test",
      "specifier": "node:test",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 2
    },
    {
      "id": "import-255",
      "from": "tests/engine.test.mts",
      "to": "src/core/catalog.ts",
      "specifier": "../src/core/catalog.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 3
    },
    {
      "id": "import-256",
      "from": "tests/engine.test.mts",
      "to": "src/core/contracts.ts",
      "specifier": "../src/core/contracts.ts",
      "kind": "import",
      "typeOnly": true,
      "resolution": "local",
      "line": 4
    },
    {
      "id": "import-257",
      "from": "tests/engine.test.mts",
      "to": "src/core/engine.ts",
      "specifier": "../src/core/engine.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 5
    },
    {
      "id": "import-258",
      "from": "tests/engine.test.mts",
      "to": "src/core/exact.ts",
      "specifier": "../src/core/exact.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 6
    },
    {
      "id": "import-259",
      "from": "tests/engine.test.mts",
      "to": "src/core/power.ts",
      "specifier": "../src/core/power.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 7
    },
    {
      "id": "import-260",
      "from": "tests/engine.test.mts",
      "to": "src/core/search.ts",
      "specifier": "../src/core/search.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 8
    },
    {
      "id": "import-261",
      "from": "tests/engine.test.mts",
      "to": "src/core/science.ts",
      "specifier": "../src/core/science.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 9
    },
    {
      "id": "import-262",
      "from": "tests/engine.test.mts",
      "to": "src/data/science-data.ts",
      "specifier": "../src/data/science-data.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 10
    },
    {
      "id": "import-263",
      "from": "tests/persistence.test.mts",
      "to": "node:test",
      "specifier": "node:test",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 1
    },
    {
      "id": "import-264",
      "from": "tests/persistence.test.mts",
      "to": "node:assert/strict",
      "specifier": "node:assert/strict",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 2
    },
    {
      "id": "import-265",
      "from": "tests/persistence.test.mts",
      "to": "npm:fake-indexeddb",
      "specifier": "fake-indexeddb",
      "kind": "import",
      "typeOnly": false,
      "resolution": "package",
      "line": 3
    },
    {
      "id": "import-266",
      "from": "tests/persistence.test.mts",
      "to": "src/core/catalog.ts",
      "specifier": "../src/core/catalog.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 4
    },
    {
      "id": "import-267",
      "from": "tests/persistence.test.mts",
      "to": "src/core/engine.ts",
      "specifier": "../src/core/engine.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 5
    },
    {
      "id": "import-268",
      "from": "tests/persistence.test.mts",
      "to": "src/persistence/store.ts",
      "specifier": "../src/persistence/store.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 6
    },
    {
      "id": "import-269",
      "from": "tests/persistence.test.mts",
      "to": "src/persistence/json.ts",
      "specifier": "../src/persistence/json.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 7
    },
    {
      "id": "import-270",
      "from": "tests/replay.test.mts",
      "to": "node:test",
      "specifier": "node:test",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 1
    },
    {
      "id": "import-271",
      "from": "tests/replay.test.mts",
      "to": "node:assert/strict",
      "specifier": "node:assert/strict",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 2
    },
    {
      "id": "import-272",
      "from": "tests/replay.test.mts",
      "to": "node:crypto",
      "specifier": "node:crypto",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 3
    },
    {
      "id": "import-273",
      "from": "tests/replay.test.mts",
      "to": "src/core/catalog.ts",
      "specifier": "../src/core/catalog.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 4
    },
    {
      "id": "import-274",
      "from": "tests/replay.test.mts",
      "to": "src/core/engine.ts",
      "specifier": "../src/core/engine.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 5
    },
    {
      "id": "import-275",
      "from": "tests/replay.test.mts",
      "to": "src/core/search.ts",
      "specifier": "../src/core/search.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 6
    },
    {
      "id": "import-276",
      "from": "tests/replay.test.mts",
      "to": "src/persistence/replay.ts",
      "specifier": "../src/persistence/replay.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 7
    },
    {
      "id": "import-277",
      "from": "tests/replay.test.mts",
      "to": "src/persistence/identity.ts",
      "specifier": "../src/persistence/identity.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 8
    },
    {
      "id": "import-278",
      "from": "tests/replay.test.mts",
      "to": "src/persistence/json.ts",
      "specifier": "../src/persistence/json.ts",
      "kind": "import",
      "typeOnly": false,
      "resolution": "local",
      "line": 9
    },
    {
      "id": "import-279",
      "from": "tools/rea-audit.mjs",
      "to": "node:child_process",
      "specifier": "node:child_process",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 7
    },
    {
      "id": "import-280",
      "from": "tools/rea-audit.mjs",
      "to": "node:crypto",
      "specifier": "node:crypto",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 8
    },
    {
      "id": "import-281",
      "from": "tools/rea-audit.mjs",
      "to": "node:fs",
      "specifier": "node:fs",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 9
    },
    {
      "id": "import-282",
      "from": "tools/rea-audit.mjs",
      "to": "node:fs/promises",
      "specifier": "node:fs/promises",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 10
    },
    {
      "id": "import-283",
      "from": "tools/rea-audit.mjs",
      "to": "node:os",
      "specifier": "node:os",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 11
    },
    {
      "id": "import-284",
      "from": "tools/rea-audit.mjs",
      "to": "node:path",
      "specifier": "node:path",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 12
    },
    {
      "id": "import-285",
      "from": "tools/rea-audit.mjs",
      "to": "node:url",
      "specifier": "node:url",
      "kind": "import",
      "typeOnly": false,
      "resolution": "node-built-in",
      "line": 13
    },
    {
      "id": "import-286",
      "from": "vite.config.ts",
      "to": "npm:vite",
      "specifier": "vite",
      "kind": "import",
      "typeOnly": false,
      "resolution": "package",
      "line": 1
    }
  ],
  "behaviors": [
    {
      "id": "b-app-worker",
      "from": "src/App.tsx",
      "to": "src/workers/client.ts",
      "kind": "invocação",
      "description": "simulateAsync / searchAsync",
      "evidence": {
        "path": "src/App.tsx",
        "line": 130,
        "match": "await simulateAsync"
      }
    },
    {
      "id": "b-worker-runtime",
      "from": "src/workers/client.ts",
      "to": "src/workers/mission.worker.ts",
      "kind": "mensagem",
      "description": "Worker de módulo; um trabalho por instância; encerra ao terminar",
      "evidence": {
        "path": "src/workers/client.ts",
        "line": 65,
        "match": "new Worker("
      }
    },
    {
      "id": "b-worker-engine",
      "from": "src/workers/mission.worker.ts",
      "to": "src/core/engine.ts",
      "kind": "invocação",
      "description": "Mensagem simulate executa o motor",
      "evidence": {
        "path": "src/workers/mission.worker.ts",
        "line": 14,
        "match": "simulateMission(config"
      }
    },
    {
      "id": "b-worker-search",
      "from": "src/workers/mission.worker.ts",
      "to": "src/core/search.ts",
      "kind": "invocação",
      "description": "Mensagem search enumera o catálogo",
      "evidence": {
        "path": "src/workers/mission.worker.ts",
        "line": 14,
        "match": "searchCatalog(config"
      }
    },
    {
      "id": "b-main-fallback",
      "from": "src/workers/client.ts",
      "to": "src/core/engine.ts",
      "kind": "fallback",
      "description": "Modo portátil / file: / ausência de Worker executa no thread principal",
      "evidence": {
        "path": "src/workers/client.ts",
        "line": 56,
        "match": "await import('../core/engine.ts')"
      }
    },
    {
      "id": "b-search-engine",
      "from": "src/core/search.ts",
      "to": "src/core/engine.ts",
      "kind": "invocação",
      "description": "Busca exaustiva chama o mesmo motor",
      "evidence": {
        "path": "src/core/search.ts",
        "line": 21,
        "match": "enumerateConfigurations(), simulateMission"
      }
    },
    {
      "id": "b-engine-science",
      "from": "src/core/engine.ts",
      "to": "src/data/science-data.ts",
      "kind": "leitura em memória",
      "description": "Seis registros congelados; não consulta API durante a missão",
      "evidence": {
        "path": "src/core/engine.ts",
        "line": 53,
        "match": "getScenario(scenarioId), SCIENCE_RECORDS"
      }
    },
    {
      "id": "b-pitch-engine",
      "from": "presentation/src/main.ts",
      "to": "src/core/engine.ts",
      "kind": "invocação",
      "description": "Demonstrador da apresentação reutiliza simulateMission",
      "evidence": {
        "path": "presentation/src/main.ts",
        "line": 348,
        "match": "simulateMission("
      }
    },
    {
      "id": "b-pitch-search",
      "from": "presentation/src/main.ts",
      "to": "src/core/search.ts",
      "kind": "invocação",
      "description": "Apresentação reutiliza searchCatalog",
      "evidence": {
        "path": "presentation/src/main.ts",
        "line": 361,
        "match": "searchCatalog("
      }
    },
    {
      "id": "b-app-store",
      "from": "src/App.tsx",
      "to": "src/persistence/store.ts",
      "kind": "persistência",
      "description": "Salva execuções e rascunhos pelo adaptador local",
      "evidence": {
        "path": "src/App.tsx",
        "line": 111,
        "match": "await saveRun("
      }
    },
    {
      "id": "b-store-indexeddb",
      "from": "src/persistence/store.ts",
      "to": "browser:IndexedDB",
      "kind": "API do navegador",
      "description": "runs e drafts; conclusão após commit de transação",
      "evidence": {
        "path": "src/persistence/store.ts",
        "line": 37,
        "match": "factory.open("
      }
    },
    {
      "id": "b-app-journal",
      "from": "src/App.tsx",
      "to": "browser:localStorage",
      "kind": "API do navegador",
      "description": "Diário de aprendizagem local",
      "evidence": {
        "path": "src/App.tsx",
        "line": 82,
        "match": "localStorage.setItem("
      }
    },
    {
      "id": "b-replay-engine",
      "from": "src/persistence/replay.ts",
      "to": "src/core/engine.ts",
      "kind": "verificação",
      "description": "Replay importado é reexecutado e o hash é comparado",
      "evidence": {
        "path": "src/persistence/replay.ts",
        "line": 43,
        "match": "simulateMission("
      }
    },
    {
      "id": "b-webgl",
      "from": "src/ui/OrbitalScene.tsx",
      "to": "browser:WebGL",
      "kind": "API do navegador",
      "description": "Cena Three.js decorativa; retorno 2D quando indisponível",
      "evidence": {
        "path": "src/ui/OrbitalScene.tsx",
        "line": 31,
        "match": "new THREE.WebGLRenderer"
      }
    },
    {
      "id": "b-pitch-build",
      "from": "scripts/build-presentation.mjs",
      "to": "presentation/Missao_Ipe_Apresentacao.html",
      "kind": "build",
      "description": "esbuild incorpora JS, CSS e arquivos de ciência selecionados",
      "evidence": {
        "path": "scripts/build-presentation.mjs",
        "line": 11,
        "match": "entryPoints: ['presentation/src/main.ts']"
      }
    },
    {
      "id": "b-portable-build",
      "from": "scripts/build-portable.mjs",
      "to": "portable/Missao_Ipe_Local.html",
      "kind": "build",
      "description": "HTML portátil incorpora jogo e define o fallback principal",
      "evidence": {
        "path": "scripts/build-portable.mjs",
        "line": 11,
        "match": "__IPE_PORTABLE__"
      }
    },
    {
      "id": "b-portal-build",
      "from": "scripts/build-beta-site.mjs",
      "to": "site/index.html",
      "kind": "cópia de publicação",
      "description": "Portal copiado sem transformação",
      "evidence": {
        "path": "scripts/build-beta-site.mjs",
        "line": 153,
        "match": "await copy('web/index.html'"
      }
    },
    {
      "id": "b-game-build",
      "from": "scripts/build-beta-site.mjs",
      "to": "site/game/",
      "kind": "cópia de publicação",
      "description": "Allowlist copia dist preservando bytes; source maps excluídos",
      "evidence": {
        "path": "scripts/build-beta-site.mjs",
        "line": 158,
        "match": "await copy(source, `game/"
      }
    },
    {
      "id": "b-map-build",
      "from": "scripts/build-beta-site.mjs",
      "to": "site/architecture/",
      "kind": "cópia de publicação",
      "description": "Somente index.html, model.json e map.mmd",
      "evidence": {
        "path": "scripts/build-beta-site.mjs",
        "line": 168,
        "match": "['index.html', 'model.json', 'map.mmd']"
      }
    },
    {
      "id": "b-docs-build",
      "from": "scripts/build-beta-site.mjs",
      "to": "site/docs/",
      "kind": "transformação de publicação",
      "description": "Markdown público selecionado é renderizado como HTML escapado",
      "evidence": {
        "path": "scripts/build-beta-site.mjs",
        "line": 172,
        "match": "for (const entry of publicMarkdown)"
      }
    },
    {
      "id": "b-evidence-build",
      "from": "scripts/build-beta-site.mjs",
      "to": "site/evidence/",
      "kind": "projeção de publicação",
      "description": "Recibos públicos usam campos selecionados",
      "evidence": {
        "path": "scripts/build-beta-site.mjs",
        "line": 202,
        "match": "await project('evidence/chronology.json'"
      }
    },
    {
      "id": "b-manifest-build",
      "from": "scripts/build-beta-site.mjs",
      "to": "site/publication-manifest.json",
      "kind": "build",
      "description": "Manifesto relaciona caminho, hash, fonte e transformação",
      "evidence": {
        "path": "scripts/build-beta-site.mjs",
        "line": 226,
        "match": "writeFile(join(stage, 'publication-manifest.json')"
      }
    },
    {
      "id": "b-preservation-receipt",
      "from": "scripts/build-beta-site.mjs",
      "to": "evidence/beta-runtime-preservation.json",
      "kind": "recibo gerado",
      "description": "Releitura compara bytes originais e publicados; timestamp muda no build. Saída fora do inventário de hashes.",
      "evidence": {
        "path": "scripts/build-beta-site.mjs",
        "line": 239,
        "match": "writeFile(resolve(root, 'evidence/beta-runtime-preservation.json')"
      }
    },
    {
      "id": "b-csp-config",
      "from": "scripts/prepare-vercel-static.mjs",
      "to": "vercel.json",
      "kind": "configuração gerada",
      "description": "CSP usa hashes dos scripts HTML finais. Saída fora do inventário para evitar autorreferência com o mapa.",
      "evidence": {
        "path": "scripts/prepare-vercel-static.mjs",
        "line": 70,
        "match": "writeFile(resolve(root, 'vercel.json')"
      }
    },
    {
      "id": "b-context-build",
      "from": "scripts/build-beta-site.mjs",
      "to": "context/index.html",
      "kind": "geração de contexto",
      "description": "Central combina conteúdo editorial e cronograma; não modifica o motor.",
      "evidence": {
        "path": "scripts/build-beta-site.mjs",
        "line": 9,
        "match": "import('./build-context-hub.mjs')"
      }
    },
    {
      "id": "b-library-build",
      "from": "scripts/build-beta-site.mjs",
      "to": "context/research-library.html",
      "kind": "geração documental",
      "description": "Biblioteca integral preserva cortes históricos e registra ajustes da projeção pública.",
      "evidence": {
        "path": "scripts/build-beta-site.mjs",
        "line": 10,
        "match": "import('./build-research-library.mjs')"
      }
    },
    {
      "id": "b-context-copy",
      "from": "scripts/build-beta-site.mjs",
      "to": "site/context/",
      "kind": "cópia de publicação",
      "description": "HTML autocontido e JSON combinado copiados para o site.",
      "evidence": {
        "path": "scripts/build-beta-site.mjs",
        "line": 170,
        "match": "copy('context/compiled-context.json'"
      }
    }
  ],
  "runtimeDiagram": {
    "schema_version": 1,
    "diagram_type": "architecture",
    "meta": {
      "title": "Missão Ipê · execução local",
      "output": "architecture/runtime.html",
      "locale": "en",
      "quality_profile": "showcase",
      "visual_preset": "editorial",
      "animation": "none",
      "subtitle": "R8 BETA · fluxo principal agrupado · contexto e publicação no inventário abaixo",
      "views": [
        {
          "id": "missao",
          "label": "Executar uma missão",
          "focus": [
            "app",
            "client",
            "worker",
            "core",
            "science"
          ],
          "note": "Interface → Worker → motor determinístico; os resultados retornam à interface."
        },
        {
          "id": "armazenar",
          "label": "Guardar no navegador",
          "focus": [
            "app",
            "persistence"
          ],
          "note": "Execuções e rascunhos usam IndexedDB; o diário usa localStorage."
        },
        {
          "id": "apresentar",
          "label": "Demonstrar no pitch",
          "focus": [
            "presentation",
            "core",
            "science"
          ],
          "note": "A apresentação usa o mesmo núcleo no thread principal."
        }
      ],
      "legend": {
        "entries": {
          "backend": {
            "label": "Lógica no navegador"
          },
          "database": {
            "label": "Dados locais"
          },
          "messagebus": {
            "label": "Worker local"
          },
          "frontend": {
            "label": "Interface"
          }
        }
      }
    },
    "components": [
      {
        "id": "app",
        "type": "frontend",
        "label": "Jogo React",
        "sublabel": "src/App.tsx + UI",
        "tag": "INTERFACE",
        "pos": [
          40,
          80
        ],
        "size": [
          230,
          82
        ]
      },
      {
        "id": "client",
        "type": "backend",
        "label": "Cliente do Worker",
        "sublabel": "workers/client.ts",
        "tag": "VALIDAÇÃO + TIMEOUT",
        "pos": [
          420,
          80
        ],
        "size": [
          230,
          82
        ]
      },
      {
        "id": "worker",
        "type": "messagebus",
        "label": "Worker de missão",
        "sublabel": "mission.worker.ts",
        "tag": "POSTMESSAGE",
        "pos": [
          800,
          80
        ],
        "size": [
          230,
          82
        ]
      },
      {
        "id": "persistence",
        "type": "database",
        "label": "Persistência local",
        "sublabel": "IndexedDB + replay",
        "tag": "HASH + REEXECUÇÃO",
        "pos": [
          40,
          350
        ],
        "size": [
          230,
          82
        ]
      },
      {
        "id": "core",
        "type": "backend",
        "label": "Motor + busca",
        "sublabel": "core/engine + search",
        "tag": "CATÁLOGO: 64",
        "pos": [
          800,
          350
        ],
        "size": [
          230,
          82
        ]
      },
      {
        "id": "presentation",
        "type": "frontend",
        "label": "Apresentação HTML",
        "sublabel": "presentation/src/main.ts",
        "tag": "MESMO NÚCLEO",
        "pos": [
          420,
          620
        ],
        "size": [
          230,
          82
        ]
      },
      {
        "id": "science",
        "type": "database",
        "label": "Ciência congelada",
        "sublabel": "data/science-data.ts",
        "tag": "MOD13 · DIDÁTICO",
        "pos": [
          800,
          620
        ],
        "size": [
          230,
          82
        ]
      }
    ],
    "connections": [
      {
        "id": "app-client",
        "from": "app",
        "to": "client",
        "label": "simular / buscar",
        "variant": "emphasis"
      },
      {
        "id": "client-worker",
        "from": "client",
        "to": "worker",
        "label": "mensagem",
        "variant": "emphasis"
      },
      {
        "id": "worker-core",
        "from": "worker",
        "to": "core",
        "label": "executar",
        "variant": "emphasis"
      },
      {
        "id": "app-persistence",
        "from": "app",
        "to": "persistence",
        "label": "salvar / importar"
      },
      {
        "id": "presentation-core",
        "from": "presentation",
        "to": "core",
        "label": "demonstrar"
      },
      {
        "id": "core-science",
        "from": "core",
        "to": "science",
        "label": "validar registros"
      }
    ],
    "cards": [
      {
        "dot": "emerald",
        "title": "Implementado",
        "items": [
          "Motor determinístico, busca exaustiva e validação científica",
          "Worker isolado; fallback principal no modo portátil",
          "Persistência local e replay verificado"
        ]
      },
      {
        "dot": "amber",
        "title": "Fronteiras",
        "items": [
          "Backend significa lógica local neste desenho; não há API de produto",
          "A visão agrupa arquivos; o inspetor abaixo enumera cada import",
          "Apresentação, jogo, portal e mapa se conectam por navegação"
        ]
      },
      {
        "dot": "rose",
        "title": "Ainda proposto",
        "items": [
          "Prisma: contrato, sem serviço implantado",
          "Marte, Fastino e IA remota: sem integração no motor",
          "Elegibilidade e Resources oficiais continuam pendentes"
        ]
      }
    ]
  },
  "opportunities": [
    {
      "id": "op-real-browser",
      "priority": "P0",
      "status": "pendente",
      "title": "Verificar a experiência em navegador real",
      "why": "Conferir WebGL, teclado, foco, celular, CSP, exportação do mapa e persistência no domínio publicado.",
      "evidence": [
        "src/ui/Scene.tsx",
        "src/ui/OrbitalScene.tsx",
        "src/persistence/store.ts"
      ]
    },
    {
      "id": "op-resource",
      "priority": "P0",
      "status": "pendente",
      "title": "Confirmar Resources e orientação sobre elegibilidade",
      "why": "Usar uma fonte NASA da lista do desafio e obter orientação oficial sobre a cronologia. A publicação não resolve essas condições.",
      "evidence": [
        "research/11-revisao-spaceapps-apresentacao.md",
        "evidence/chronology.json"
      ]
    },
    {
      "id": "op-learning",
      "priority": "P1",
      "status": "proposto",
      "title": "Observar aprendizagem com participantes",
      "why": "Avaliar previsão, interpretação da falha e escolha de mudança; o diário implementado não demonstra eficácia por si só.",
      "evidence": [
        "src/ui/learning.ts",
        "src/App.tsx"
      ]
    },
    {
      "id": "op-science",
      "priority": "P1",
      "status": "proposto",
      "title": "Versionar novos pacotes científicos",
      "why": "Preservar proveniência, critérios de qualidade e hashes; distinguir NDVI observado de massa, potência e enlace didáticos.",
      "evidence": [
        "src/core/science.ts",
        "src/data/science-data.ts",
        "scripts/verify-science-data.mjs"
      ]
    },
    {
      "id": "op-arch",
      "priority": "P1",
      "status": "proposto",
      "title": "Manter o mapa como evidência regenerável",
      "why": "Executar o inspetor após mudanças, verificar o build publicado e atualizar a análise de chamadas. Imports estáticos não provam execução.",
      "evidence": [
        "architecture/build-model.mjs",
        "architecture/build-page.mjs",
        "architecture/model.json"
      ]
    },
    {
      "id": "op-backend",
      "priority": "P2",
      "status": "proposto",
      "title": "Decidir se sincronização remota é necessária",
      "why": "Prisma é um contrato futuro. Autenticação, serviço e migração exigem uma decisão de produto antes da implementação.",
      "evidence": [
        "prisma/schema.prisma",
        "docs/07-SCHEMA-PRISMA.md"
      ]
    },
    {
      "id": "op-mars",
      "priority": "P2",
      "status": "proposto",
      "title": "Projetar Marte como outro cenário",
      "why": "O mapa visual existente não altera física, dados ou regras da missão atual; uma expansão precisa de modelo e validação próprios.",
      "evidence": [
        "research/03-oportunidades-spec.md",
        "src/core/catalog.ts"
      ]
    }
  ],
  "generatedOutputs": [
    {
      "path": "vercel.json",
      "source": "scripts/prepare-vercel-static.mjs",
      "hashInventoried": false,
      "reason": "Configuração e CSP geradas a partir dos scripts HTML finais; incluir seu hash no mapa criaria ciclo."
    },
    {
      "path": "evidence/beta-runtime-preservation.json",
      "source": "scripts/build-beta-site.mjs",
      "hashInventoried": false,
      "reason": "Recibo posterior à montagem; registra hashes de runtime e timestamp do build. Não é fonte do mapa."
    },
    {
      "path": "context/index.html",
      "source": "scripts/build-context-hub.mjs",
      "hashInventoried": false,
      "reason": "HTML gerado a partir de template e JSON; as fontes editoriais estão inventariadas."
    },
    {
      "path": "context/compiled-context.json",
      "source": "scripts/build-context-hub.mjs",
      "hashInventoried": false,
      "reason": "Combinação gerada de conteúdo e cronograma."
    },
    {
      "path": "context/research-library.html",
      "source": "scripts/build-research-library.mjs",
      "hashInventoried": false,
      "reason": "Compilação de documentos históricos e atuais, com índice próprio."
    }
  ],
  "boundaries": [
    {
      "title": "Jogo e apresentação",
      "status": "implementado",
      "detail": "Compartilham imports do núcleo. A apresentação executa o núcleo diretamente; o jogo usa Worker quando disponível."
    },
    {
      "title": "Armazenamento",
      "status": "implementado",
      "detail": "IndexedDB guarda runs/drafts; localStorage guarda o diário. Não há sincronização remota."
    },
    {
      "title": "Ciência",
      "status": "implementado",
      "detail": "O núcleo lê registros congelados. NDVI é dado observado MOD13; o cenário orbital e o catálogo são didáticos."
    },
    {
      "title": "Portal / mapa / docs",
      "status": "implementado",
      "detail": "Páginas estáticas conectadas por links. Não há estado de aplicação compartilhado entre elas."
    },
    {
      "title": "Contexto e cronograma",
      "status": "implementado",
      "detail": "Central estática com dados incorporados; checklist pessoal no localStorage não altera o estado oficial ou o jogo."
    },
    {
      "title": "Publicação GitHub / Vercel",
      "status": "base R6 publicada; atualização R8 identificada por recibos próprios",
      "detail": "Repositório privado criado na R8. A confirmação final do conteúdo remoto, commit e deployment fica nos recibos posteriores."
    },
    {
      "title": "Prisma / Fastino / Marte",
      "status": "proposto",
      "detail": "Contrato e pesquisa, sem integração de backend, IA remota ou cenário marciano ao motor."
    }
  ]
}
