{
 "site": "https://rea.genesisinnovation.io/",
 "nome": "Reverter a entropia de sistemas legados",
 "editor": "Genesis Innovation",
 "caminho": [
  "ler o sistema antigo (executável ou fonte)",
  "escrever o contrato do que ele promete",
  "gerar o sistema novo a partir do contrato",
  "conferir com um avaliador que reprova a diferença"
 ],
 "casos": [
  {
   "id": "delphi",
   "pagina": "https://rea.genesisinnovation.io/#delphi",
   "titulo": "Delphi para a web",
   "programa": "HeidiSQL 12.21",
   "licenca": "GPL-2.0",
   "placar": {
    "telas_identicas": 34,
    "telas_em_comum": 34,
    "componentes": 1634,
    "eventos": 1264,
    "botoes_lidos_pela_engenharia_reversa": 5,
    "botoes_iguais_ao_fonte": 3
   },
   "dados": {
    "caso": "https://rea.genesisinnovation.io/dados/delphi/caso.json",
    "contrato_das_telas": "https://rea.genesisinnovation.io/dados/delphi/telas.json",
    "botoes": "https://rea.genesisinnovation.io/dados/delphi/botoes.json"
   }
  },
  {
   "id": "fastapi",
   "pagina": "https://rea.genesisinnovation.io/#fastapi",
   "titulo": "Laravel para FastAPI",
   "programa": "laravel-realworld-example-app",
   "licenca": "MIT",
   "placar": {
    "endpoints_iguais": 19,
    "endpoints": 19,
    "passos_iguais": 81,
    "passos": 81,
    "controle_negativo_endpoints_iguais": 0
   },
   "limite": {
    "programa": "BookStack v26.09.1",
    "rotas_api": 82,
    "rotas_api_cobertas": 0
   },
   "dados": {
    "contrato_e_rotas": "https://rea.genesisinnovation.io/dados/fastapi/realworld.json",
    "placar": "https://rea.genesisinnovation.io/dados/fastapi/resultado.json",
    "controle_negativo": "https://rea.genesisinnovation.io/dados/fastapi/resultado-negativo.json",
    "cobertura_do_gerador": "https://rea.genesisinnovation.io/dados/fastapi/cobertura-gerador.json",
    "limite_bookstack": "https://rea.genesisinnovation.io/dados/fastapi/bookstack.json"
   }
  },
  {
   "id": "jogo",
   "pagina": "https://rea.genesisinnovation.io/#jogo",
   "titulo": "Engenharia reversa de um jogo em C",
   "programa": "Chocolate Doom 3.1.1",
   "licenca": "GPL-2.0-or-later",
   "placar": {
    "funcoes": 12,
    "equivalentes": 5,
    "parciais": 6,
    "nao_achadas": 1,
    "wad_lumps": 3163,
    "wad_mapas": 36
   },
   "dados": {
    "caso": "https://rea.genesisinnovation.io/dados/jogo/caso.json",
    "metricas": "https://rea.genesisinnovation.io/dados/jogo/metricas.json",
    "funcoes": "https://rea.genesisinnovation.io/dados/jogo/funcoes.json",
    "wad": "https://rea.genesisinnovation.io/dados/jogo/freedoom1.wad.json"
   }
  }
 ],
 "experimente": {
  "pagina": "https://rea.genesisinnovation.io/experimente/",
  "aba": "https://rea.genesisinnovation.io/#experimente",
  "estado": "no ar",
  "pyodide": "314.0.7",
  "python": "3.14.2",
  "leitor_sha256": "4cbd49d7ddfd528af99e0124ee479e50f4de62a296f03176278434888515bb5b",
  "interface": {
   "entrada": "#arquivo (input de arquivo: .exe, .dll, .bpl, .dfm, .pas ou .zip)",
   "estado": "body[data-estado]",
   "resultado": "#resultado-json",
   "contrato": "#contrato-json",
   "api": "window.delphiContrato",
   "webmcp": "ferramentas extrair_contrato e comparar, registradas quando o navegador tem document.modelContext"
  }
 },
 "video": {
  "url": "https://rea.genesisinnovation.io/midia/rea.mp4",
  "poster": "https://rea.genesisinnovation.io/midia/rea.jpg",
  "segundos": 50
 }
}
