{
 "jogo": "Marcela por SP",
 "slug": "marcela-morgon",
 "gerado_em": "2026-09-23T20:44:22.759Z",
 "gerado_por": "trabalho/tools/gerar-manifesto.mjs",
 "higgsfield": "Nenhuma imagem de IA entra na build. Conceitos-guia opcionais, se existirem, ficam em arte/<asset>/conceitos/ com proveniência no INVENTARIO_ASSETS.json.",
 "fotos": "Nenhuma fotografia da participante foi usada em geração nem entregue.",
 "base_de_codigo": "rafa-brites-v2 (Próximo passo, HD-2D) do mesmo repositório: câmera, rig, pipeline de materiais, luz, pós e qualidade adaptativa.",
 "assets": [
  {
   "id": "marcela-sprite",
   "tipo": "personagem jogável, pixel art 32×48",
   "origin": "desenhada por código em dist/sprites.js a partir de docs/APARENCIA.md (descrição somente textual; nenhuma foto usada)",
   "tool": "Canvas/JS (buffer RGBA próprio)",
   "frames": 40,
   "animations": "parada de frente 4, parada de costas 4, pulo de frente 6, pulo de costas 6, pulo de lado 6 (esquerda espelhada), cravar alfinete 6, lanche roubado 4, tropeço 4",
   "review_frames": "arte/marcela-sprite/quadros/*.png (um PNG por quadro; fora da build pública)",
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "visual_review": "self_reviewed_pending_human"
  },
  {
   "id": "marcela-look-1",
   "tipo": "look \"Jaqueta caramelo\" (troca de paleta dos mesmos quadros)",
   "origin": "dist/sprites.js + paleta em dist/engine.js",
   "tool": "Canvas/JS",
   "frames": 40,
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "visual_review": "self_reviewed_pending_human"
  },
  {
   "id": "marcela-look-2",
   "tipo": "look \"Verde de feira\" (troca de paleta dos mesmos quadros)",
   "origin": "dist/sprites.js + paleta em dist/engine.js",
   "tool": "Canvas/JS",
   "frames": 40,
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "visual_review": "self_reviewed_pending_human"
  },
  {
   "id": "marcela-look-3",
   "tipo": "look \"Noite de letreiro\" (troca de paleta dos mesmos quadros)",
   "origin": "dist/sprites.js + paleta em dist/engine.js",
   "tool": "Canvas/JS",
   "frames": 40,
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "visual_review": "self_reviewed_pending_human"
  },
  {
   "id": "pombo-sprite",
   "tipo": "NPC (pressão), pixel art 24×18",
   "origin": "desenhado por código em dist/sprites.js",
   "tool": "Canvas/JS",
   "frames": 16,
   "animations": "parado/bicando 4, andando 4, voando 4, voando com o lanche 4",
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "visual_review": "self_reviewed_pending_human"
  },
  {
   "id": "alfinetes",
   "tipo": "alfinete do mapa por categoria (aceso e apagado), 16×22",
   "origin": "dist/sprites.js",
   "tool": "Canvas/JS",
   "frames": 12,
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "visual_review": "self_reviewed_pending_human"
  },
  {
   "id": "icones-categorias",
   "tipo": "ícones 12×12: xícara, fatia de pizza, bolinho, sushi e hashi, hambúrguer, maçã",
   "origin": "dist/sprites.js",
   "tool": "Canvas/JS",
   "frames": 6,
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "visual_review": "self_reviewed_pending_human"
  },
  {
   "id": "cidade-3d",
   "tipo": "modelos 3D procedurais: prédios, fachadas de lugares inventados, bancas, orelhões, mesas de bar, árvores, barracas de feira, postes, cancelas do metrô",
   "origin": "dist/props.js",
   "tool": "Three.js (geometria em código)",
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "visual_review": "self_reviewed_pending_human"
  },
  {
   "id": "veiculos-3d",
   "tipo": "carros, ônibus, bikes de entrega com caixa lisa, carrinho de feira com feirante, metrô, balsas, pedalinhos de cisne",
   "origin": "dist/props.js (mesmo comprimento da colisão do motor)",
   "tool": "Three.js (geometria em código)",
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "visual_review": "self_reviewed_pending_human"
  },
  {
   "id": "texturas-pixel",
   "tipo": "calçada em ondas, placas de concreto, asfalto, ciclovia, chão de feira, trilho, grama, tijolo, azulejo, fachadas com janelas acesas, toldos, grafites genéricos",
   "origin": "dist/textures.js",
   "tool": "Canvas 2D",
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "visual_review": "self_reviewed_pending_human"
  },
  {
   "id": "letreiros",
   "tipo": "placas dos 18 lugares inventados (nome + ícone)",
   "origin": "dist/textures.js (placaTexture) + nomes em dist/places.js",
   "tool": "Canvas 2D + Pixelify Sans",
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "note": "Nomes inventados; nenhuma marca, restaurante real ou recomendação da participante.",
   "visual_review": "self_reviewed_pending_human"
  },
  {
   "id": "trilha-e-efeitos",
   "tipo": "música por bairro e efeitos (pulo, alfinete, coleção, pombo, buzina, metrô)",
   "origin": "dist/audio.js",
   "tool": "Web Audio (síntese em tempo real)",
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "visual_review": "not_applicable"
  },
  {
   "id": "capa",
   "file": "assets/capa.png",
   "tipo": "capa do catálogo: cena real do jogo (Largo do Forno, anoitecer)",
   "origin": "render do próprio jogo no Chromium headless (scripts/qa-capa.mjs)",
   "tool": "Chromium headless + Three.js",
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "visual_review": "self_reviewed_pending_human",
   "sha256": "01aeb7690209dd37f486c7494f28687c7c3da66e94d80b3b885506acc42658d2"
  },
  {
   "id": "fonte-pixelify-sans",
   "file": "fonts/PixelifySans.ttf",
   "tipo": "fonte",
   "origin": "Pixelify Sans (Stefie Justprince), copiada de rafa-brites-v2",
   "tool": "-",
   "license": "SIL Open Font License 1.1 (fonts/PixelifySans-OFL.txt)",
   "visual_review": "not_applicable",
   "sha256": "9ba86cd010a4de309d263ceff8e8044092c9db7efda869620cb9ff1c4389e8a5"
  },
  {
   "id": "threejs",
   "file": "vendor/three.module.min.js",
   "tipo": "biblioteca 3D",
   "origin": "three.js r170, copiada de rafa-brites-v2",
   "tool": "-",
   "license": "MIT (vendor/THREE-LICENSE.txt)",
   "visual_review": "not_applicable",
   "sha256": "08fd7545d13d2c7fb65ab691530a802dafefd638596501854f267d0fb13c39e7"
  },
  {
   "id": "kit-como-jogar",
   "file": "como-jogar/como-jogar.js",
   "tipo": "módulo do guia \"Como jogar\" (com como-jogar/como-jogar.css)",
   "origin": "kit comum da coleção Aldeias de Futuros (pacote de ajustes 01, tarefa/kit-tutorial), copiado sem alterações",
   "tool": "-",
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "visual_review": "not_applicable",
   "sha256": "3b17cc5648df04f2f42b0aaa439ff7850f5e3a56f348cad39d923da8479a2389"
  },
  {
   "id": "tutorial-objetivo-webm",
   "file": "assets/tutorial/objetivo.webm",
   "tipo": "guia \"Como jogar\", clipe VP9 480×360: a Marcela pula, vai para o lado e pisa no alfinete do café (nome do lugar, 1/3)",
   "origin": "captura do próprio jogo (ferramenta: qa-browser + ffmpeg)",
   "tool": "scripts/qa-clipes.mjs (Chromium headless com GPU, recordVideo, entradas reais de teclado) + ferramentas/fazer-clipe.mjs do pacote; recorte 640×480 e redução para 480×360",
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "visual_review": "self_reviewed_pending_human",
   "sha256": "e923fea5ff462279c19d5e3e71e321720858500623a129359fe66f17c6e624f1",
   "bytes": 290461
  },
  {
   "id": "tutorial-objetivo-mp4",
   "file": "assets/tutorial/objetivo.mp4",
   "tipo": "guia \"Como jogar\", clipe H.264 de reserva 480×360: a Marcela pula, vai para o lado e pisa no alfinete do café (nome do lugar, 1/3)",
   "origin": "captura do próprio jogo (ferramenta: qa-browser + ffmpeg)",
   "tool": "scripts/qa-clipes.mjs (Chromium headless com GPU, recordVideo, entradas reais de teclado) + ferramentas/fazer-clipe.mjs do pacote; recorte 640×480 e redução para 480×360",
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "visual_review": "self_reviewed_pending_human",
   "sha256": "8fd308d68ed9bc9a44b0eb72c14c90c913a31921bddd0d42a69eb09a1229c175",
   "bytes": 114636
  },
  {
   "id": "tutorial-objetivo-webp",
   "file": "assets/tutorial/objetivo.webp",
   "tipo": "guia \"Como jogar\", pôster 480×360: a Marcela pula, vai para o lado e pisa no alfinete do café (nome do lugar, 1/3)",
   "origin": "captura do próprio jogo (ferramenta: qa-browser + ffmpeg)",
   "tool": "scripts/qa-clipes.mjs (Chromium headless com GPU, recordVideo, entradas reais de teclado) + ferramentas/fazer-clipe.mjs do pacote; recorte 640×480 e redução para 480×360",
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "visual_review": "self_reviewed_pending_human",
   "sha256": "b5262d470c381901c289a951c394ed4e9640a4fbac1e5fc8e5fe6743051086b8",
   "bytes": 27896
  },
  {
   "id": "tutorial-controles-webm",
   "file": "assets/tutorial/controles.webm",
   "tipo": "guia \"Como jogar\", clipe VP9 480×360: pulos para frente, para os lados e para trás",
   "origin": "captura do próprio jogo (ferramenta: qa-browser + ffmpeg)",
   "tool": "scripts/qa-clipes.mjs (Chromium headless com GPU, recordVideo, entradas reais de teclado) + ferramentas/fazer-clipe.mjs do pacote; recorte 640×480 e redução para 480×360",
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "visual_review": "self_reviewed_pending_human",
   "sha256": "c28b505687fd9d2c9e35d39fa124e542ff76afff88f178d9c0b10e4cdf681b9b",
   "bytes": 296441
  },
  {
   "id": "tutorial-controles-mp4",
   "file": "assets/tutorial/controles.mp4",
   "tipo": "guia \"Como jogar\", clipe H.264 de reserva 480×360: pulos para frente, para os lados e para trás",
   "origin": "captura do próprio jogo (ferramenta: qa-browser + ffmpeg)",
   "tool": "scripts/qa-clipes.mjs (Chromium headless com GPU, recordVideo, entradas reais de teclado) + ferramentas/fazer-clipe.mjs do pacote; recorte 640×480 e redução para 480×360",
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "visual_review": "self_reviewed_pending_human",
   "sha256": "b9388e41105586fad7e99821a43329c706c2fa4d736f92f7d8f2de4700508f82",
   "bytes": 116137
  },
  {
   "id": "tutorial-controles-webp",
   "file": "assets/tutorial/controles.webp",
   "tipo": "guia \"Como jogar\", pôster 480×360: pulos para frente, para os lados e para trás",
   "origin": "captura do próprio jogo (ferramenta: qa-browser + ffmpeg)",
   "tool": "scripts/qa-clipes.mjs (Chromium headless com GPU, recordVideo, entradas reais de teclado) + ferramentas/fazer-clipe.mjs do pacote; recorte 640×480 e redução para 480×360",
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "visual_review": "self_reviewed_pending_human",
   "sha256": "87a7e3522be00084c16730c756a11e34becd65c61b256253a2ee4515a26c3395",
   "bytes": 27428
  },
  {
   "id": "tutorial-regra-webm",
   "file": "assets/tutorial/regra.webm",
   "tipo": "guia \"Como jogar\", clipe VP9 480×360: espera o ônibus passar na avenida e atravessa na brecha",
   "origin": "captura do próprio jogo (ferramenta: qa-browser + ffmpeg)",
   "tool": "scripts/qa-clipes.mjs (Chromium headless com GPU, recordVideo, entradas reais de teclado) + ferramentas/fazer-clipe.mjs do pacote; recorte 640×480 e redução para 480×360",
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "visual_review": "self_reviewed_pending_human",
   "sha256": "0e1a2366d10898097f0d0ac623087a2dd85787c2f6d258cbfc0eeed09c9f2d4c",
   "bytes": 388956
  },
  {
   "id": "tutorial-regra-mp4",
   "file": "assets/tutorial/regra.mp4",
   "tipo": "guia \"Como jogar\", clipe H.264 de reserva 480×360: espera o ônibus passar na avenida e atravessa na brecha",
   "origin": "captura do próprio jogo (ferramenta: qa-browser + ffmpeg)",
   "tool": "scripts/qa-clipes.mjs (Chromium headless com GPU, recordVideo, entradas reais de teclado) + ferramentas/fazer-clipe.mjs do pacote; recorte 640×480 e redução para 480×360",
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "visual_review": "self_reviewed_pending_human",
   "sha256": "6cebad75f0a4061dc51fe2bff05b5404b205c8628fd945f85c4bf375576afa33",
   "bytes": 188284
  },
  {
   "id": "tutorial-regra-webp",
   "file": "assets/tutorial/regra.webp",
   "tipo": "guia \"Como jogar\", pôster 480×360: espera o ônibus passar na avenida e atravessa na brecha",
   "origin": "captura do próprio jogo (ferramenta: qa-browser + ffmpeg)",
   "tool": "scripts/qa-clipes.mjs (Chromium headless com GPU, recordVideo, entradas reais de teclado) + ferramentas/fazer-clipe.mjs do pacote; recorte 640×480 e redução para 480×360",
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "visual_review": "self_reviewed_pending_human",
   "sha256": "95af98e891915ab1909683cf3c9b24cab3aa8954b7f080c9d73352c1816e84a2",
   "bytes": 26934
  },
  {
   "id": "tutorial-erro-webm",
   "file": "assets/tutorial/erro.webm",
   "tipo": "guia \"Como jogar\", clipe VP9 480×360: parada, o aviso conta os segundos e o pombo leva o lanche; fim do passeio",
   "origin": "captura do próprio jogo (ferramenta: qa-browser + ffmpeg)",
   "tool": "scripts/qa-clipes.mjs (Chromium headless com GPU, recordVideo, entradas reais de teclado) + ferramentas/fazer-clipe.mjs do pacote; recorte 640×480 e redução para 480×360",
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "visual_review": "self_reviewed_pending_human",
   "sha256": "0e3eb798fd2adcdf60ecfba5d5cb5ccd06a98650e700214210363f5d69336019",
   "bytes": 377128
  },
  {
   "id": "tutorial-erro-mp4",
   "file": "assets/tutorial/erro.mp4",
   "tipo": "guia \"Como jogar\", clipe H.264 de reserva 480×360: parada, o aviso conta os segundos e o pombo leva o lanche; fim do passeio",
   "origin": "captura do próprio jogo (ferramenta: qa-browser + ffmpeg)",
   "tool": "scripts/qa-clipes.mjs (Chromium headless com GPU, recordVideo, entradas reais de teclado) + ferramentas/fazer-clipe.mjs do pacote; recorte 640×480 e redução para 480×360",
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "visual_review": "self_reviewed_pending_human",
   "sha256": "0ffa6a9951a97bc947970c365fa49c4ab64cfcd3da285b4708527ed04acedac5",
   "bytes": 155693
  },
  {
   "id": "tutorial-erro-webp",
   "file": "assets/tutorial/erro.webp",
   "tipo": "guia \"Como jogar\", pôster 480×360: parada, o aviso conta os segundos e o pombo leva o lanche; fim do passeio",
   "origin": "captura do próprio jogo (ferramenta: qa-browser + ffmpeg)",
   "tool": "scripts/qa-clipes.mjs (Chromium headless com GPU, recordVideo, entradas reais de teclado) + ferramentas/fazer-clipe.mjs do pacote; recorte 640×480 e redução para 480×360",
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "visual_review": "self_reviewed_pending_human",
   "sha256": "bda134759d89893c2c4f1796ee8787b8611a4ac383e7cd2aab36e836cedcd481",
   "bytes": 29866
  },
  {
   "id": "tutorial-dica-webm",
   "file": "assets/tutorial/dica.webm",
   "tipo": "guia \"Como jogar\", clipe VP9 480×360: pula numa balsa do córrego, é levada de lado e salta para a calçada",
   "origin": "captura do próprio jogo (ferramenta: qa-browser + ffmpeg)",
   "tool": "scripts/qa-clipes.mjs (Chromium headless com GPU, recordVideo, entradas reais de teclado) + ferramentas/fazer-clipe.mjs do pacote; recorte 640×480 e redução para 480×360",
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "visual_review": "self_reviewed_pending_human",
   "sha256": "b978f54d6bb5a40e55ff47537cec7d6f409bd0323868597e812337d80820ff24",
   "bytes": 272526
  },
  {
   "id": "tutorial-dica-mp4",
   "file": "assets/tutorial/dica.mp4",
   "tipo": "guia \"Como jogar\", clipe H.264 de reserva 480×360: pula numa balsa do córrego, é levada de lado e salta para a calçada",
   "origin": "captura do próprio jogo (ferramenta: qa-browser + ffmpeg)",
   "tool": "scripts/qa-clipes.mjs (Chromium headless com GPU, recordVideo, entradas reais de teclado) + ferramentas/fazer-clipe.mjs do pacote; recorte 640×480 e redução para 480×360",
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "visual_review": "self_reviewed_pending_human",
   "sha256": "8081240d58ee22f659f0a0699e1db20a4289c4bea2c4c7b780e077fe63a92d93",
   "bytes": 111184
  },
  {
   "id": "tutorial-dica-webp",
   "file": "assets/tutorial/dica.webp",
   "tipo": "guia \"Como jogar\", pôster 480×360: pula numa balsa do córrego, é levada de lado e salta para a calçada",
   "origin": "captura do próprio jogo (ferramenta: qa-browser + ffmpeg)",
   "tool": "scripts/qa-clipes.mjs (Chromium headless com GPU, recordVideo, entradas reais de teclado) + ferramentas/fazer-clipe.mjs do pacote; recorte 640×480 e redução para 480×360",
   "license": "Código próprio do projeto (Gzero × Vivo Utopia — Aldeias de Futuros)",
   "visual_review": "self_reviewed_pending_human",
   "sha256": "0b66f1e40e480fc9f9439743dcf45307168868d57fe19a23997774ed33301058",
   "bytes": 22682
  }
 ]
}
