{
  "estilo": "terminal",
  "nome": "Terminal hacker",
  "versao": 1,
  "fps": 30,
  "pecas": [
    {
      "nome": "ArteAscii",
      "categoria": "formas",
      "tipo": "componente",
      "arquivo": "formas/ArteAscii.tsx",
      "descricao": "o nome do produto em LETRAS DE BLOCO (fonte 5×7 desenhada no kit), revelado linha a linha pela cabeça de escrita do tubo: cada linha de blocos acende quente e esfria pro fósforo em 6…",
      "params": [
        "texto",
        "y?",
        "largura?",
        "inicio?",
        "porLinha?"
      ],
      "duracao": [
        30,
        90
      ],
      "tags": [
        "forma",
        "arte",
        "ascii"
      ]
    },
    {
      "nome": "BarraProgresso",
      "categoria": "formas",
      "tipo": "componente",
      "arquivo": "formas/BarraProgresso.tsx",
      "descricao": "a saída do comando que vira herói. Uma linha por tarefa: rótulo, a barra de 14 blocos entre colchetes que enche aos SALTOS (como I/O de verdade), e a porcentagem; no fim, [OK] quente.",
      "params": [
        "itens",
        "y?",
        "inicio?",
        "intervalo?",
        "celulas?"
      ],
      "duracao": [
        30,
        90
      ],
      "tags": [
        "forma",
        "barra",
        "progresso"
      ]
    },
    {
      "nome": "BarraStatus",
      "categoria": "formas",
      "tipo": "componente",
      "arquivo": "formas/BarraStatus.tsx",
      "descricao": "a linha de status em vídeo inverso no pé do vidro (como os programas de DOS/BBS): segmentos separados por \"|\" e um relógio que conta o tempo do vídeo.",
      "params": [
        "segmentos",
        "desde?"
      ],
      "duracao": [
        30,
        90
      ],
      "tags": [
        "forma",
        "barra",
        "status"
      ]
    },
    {
      "nome": "BootBios",
      "categoria": "formas",
      "tipo": "componente",
      "arquivo": "formas/BootBios.tsx",
      "descricao": "a partida da máquina. Cabeçalho do BIOS, o CONTADOR DE MEMÓRIA gigante (140 px, herói) que sobe em saltos irregulares, e as checagens que imprimem uma a uma com pontos de guia e [OK] em…",
      "params": [
        "cabecalho",
        "memoria",
        "checagens",
        "inicio?",
        "intervalo?"
      ],
      "duracao": [
        30,
        90
      ],
      "tags": [
        "forma",
        "boot",
        "bios"
      ]
    },
    {
      "nome": "LinhaComando",
      "categoria": "formas",
      "tipo": "componente",
      "arquivo": "formas/LinhaComando.tsx",
      "descricao": "o prompt e o comando digitados com CADÊNCIA HUMANA (1–3 quadros por tecla, pausa antes das opções), cursor de bloco sólido enquanto digita e piscando (8 on / 8 off) parado.",
      "params": [
        "prompt?",
        "comando",
        "y?",
        "inicio?",
        "enter?",
        "tamanho?",
        "semente?"
      ],
      "duracao": [
        30,
        90
      ],
      "tags": [
        "forma",
        "linha",
        "comando"
      ]
    },
    {
      "nome": "Monitor",
      "categoria": "formas",
      "tipo": "componente",
      "arquivo": "formas/Monitor.tsx",
      "descricao": "a MOLDURA que se repete em todo vídeo do kit.",
      "params": [
        "placa?",
        "liga?",
        "desliga?",
        "children?"
      ],
      "duracao": [
        30,
        90
      ],
      "tags": [
        "forma",
        "monitor"
      ]
    },
    {
      "nome": "PainelCaixa",
      "categoria": "formas",
      "tipo": "componente",
      "arquivo": "formas/PainelCaixa.tsx",
      "descricao": "um painel de linha DUPLA (╔═╗ desenhado com bordas de 4 px + 4 px de vão), com o título em vídeo inverso cravado na borda de cima e linhas chave · valor que contam.",
      "params": [
        "titulo",
        "linhas",
        "y?",
        "inicio?",
        "intervalo?"
      ],
      "duracao": [
        30,
        90
      ],
      "tags": [
        "forma",
        "painel",
        "caixa"
      ]
    },
    {
      "nome": "Tela",
      "categoria": "formas",
      "tipo": "componente",
      "arquivo": "formas/Tela.tsx",
      "descricao": "o vidro do CRT por cima do conteúdo. Fundo de fósforo apagado com o centro 6% mais claro (o abaulado), linhas de varredura de 3 px, máscara de sombra, a barra de atualização que rola de…",
      "params": [],
      "duracao": [
        30,
        90
      ],
      "tags": [
        "forma",
        "tela"
      ]
    },
    {
      "nome": "Fundo",
      "categoria": "texturas",
      "tipo": "componente",
      "arquivo": "texturas/Fundo.tsx",
      "descricao": "o quarto escuro onde o monitor está. Parede quase preta, o brilho âmbar do vidro vazando na parede e na mesa (y 1600+), com a borda da mesa refletindo. O brilho pulsa com a tela (±4%).",
      "params": [
        "brilho?"
      ],
      "duracao": null,
      "tags": [
        "texturas",
        "fundo"
      ]
    },
    {
      "nome": "Particulas",
      "categoria": "texturas",
      "tipo": "componente",
      "arquivo": "texturas/Particulas.tsx",
      "descricao": "Camada de pontos e traços flutuando em 3 profundidades (movimento de fundo constante).",
      "params": [
        "quantidade?",
        "cor?",
        "semente?",
        "velocidade?",
        "opacidade?"
      ],
      "duracao": null,
      "tags": [
        "fundo",
        "movimento",
        "densidade"
      ]
    },
    {
      "nome": "Cena",
      "categoria": "transicoes",
      "tipo": "componente",
      "arquivo": "transicoes/Cena.tsx",
      "descricao": "a janela de tempo de um plano. Dentro dela, useCurrentFrame() começa em 0.",
      "params": [],
      "duracao": [
        24,
        150
      ],
      "tags": [
        "transicoes",
        "cena"
      ]
    },
    {
      "nome": "CorteImpacto",
      "categoria": "transicoes",
      "tipo": "componente",
      "arquivo": "transicoes/CorteImpacto.tsx",
      "descricao": "Soco de corte: clarão, tremida e zoom-pop que decaem em ~10 quadros.",
      "params": [
        "em",
        "forca?",
        "clarao?",
        "corClarao?",
        "children"
      ],
      "duracao": [
        10,
        14
      ],
      "tags": [
        "corte",
        "impacto",
        "energia"
      ]
    },
    {
      "nome": "TextoGrande",
      "categoria": "tipografia",
      "tipo": "componente",
      "arquivo": "tipografia/TextoGrande.tsx",
      "descricao": "frases grandes impressas no tubo (VT323 até 150 px), cada linha digitada com a cadência humana, com cursor de bloco no fim da última. `quente` pinta a linha com o acento.",
      "params": [
        "linhas",
        "y?",
        "inicio?",
        "pausa?",
        "cursor?"
      ],
      "duracao": [
        30,
        90
      ],
      "tags": [
        "tipografia",
        "texto",
        "grande"
      ]
    },
    {
      "nome": "Camera",
      "categoria": "camera",
      "tipo": "componente",
      "arquivo": "camera/Camera.tsx",
      "descricao": "o monitor é um objeto físico. A câmera deriva devagar em 3D (giro Y ±2,5°, X ±1,2°) e empurra por chaves [[quadro, zoom, deslocY px]] (curva suave).",
      "params": [
        "chaves?",
        "children"
      ],
      "duracao": null,
      "tags": [
        "camera",
        "camera"
      ]
    },
    {
      "nome": "CameraDeriva",
      "categoria": "camera",
      "tipo": "componente",
      "arquivo": "camera/CameraDeriva.tsx",
      "descricao": "Câmera 3D com perspectiva: chaves {em,z,x,y,giro} levam o foco de uma a outra e por baixo roda uma deriva que nunca para.",
      "params": [
        "chaves?",
        "deriva?",
        "perspectiva?",
        "children"
      ],
      "duracao": null,
      "tags": [
        "3d",
        "camera",
        "movimento"
      ]
    },
    {
      "nome": "assinatura",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/assinatura.mp3",
      "descricao": "Efeito assinatura.",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        44,
        44
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 0.9
    },
    {
      "nome": "clique",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/clique.mp3",
      "descricao": "Efeito clique.",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        15,
        15
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 0.8
    },
    {
      "nome": "digitar",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/digitar.mp3",
      "descricao": "rajada de 16 teclas com cadência humana.",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        48,
        48
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 0.8
    },
    {
      "nome": "impacto",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/impacto.mp3",
      "descricao": "Efeito impacto.",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        44,
        44
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 0.9
    },
    {
      "nome": "liga-crt",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/liga-crt.mp3",
      "descricao": "o tubo ligando (baque + chiado subindo).",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        30,
        30
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 0.9
    },
    {
      "nome": "pop-cartao",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/pop-cartao.mp3",
      "descricao": "Efeito pop-cartao.",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        16,
        16
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 0.9
    },
    {
      "nome": "pop-palavra",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/pop-palavra.mp3",
      "descricao": "Efeito pop-palavra.",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        14,
        14
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 1
    },
    {
      "nome": "subida",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/subida.mp3",
      "descricao": "Efeito subida.",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        45,
        45
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 0.7
    },
    {
      "nome": "swoosh",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/swoosh.mp3",
      "descricao": "Efeito swoosh.",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        23,
        23
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 1
    },
    {
      "nome": "tick",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/tick.mp3",
      "descricao": "Efeito tick.",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        13,
        13
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 0.6
    },
    {
      "nome": "whoosh-entra",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/whoosh-entra.mp3",
      "descricao": "Efeito whoosh-entra.",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        22,
        22
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 0.9
    },
    {
      "nome": "whoosh-sai",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/whoosh-sai.mp3",
      "descricao": "Efeito whoosh-sai.",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        20,
        20
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 0.8
    },
    {
      "nome": "Som",
      "categoria": "sons",
      "tipo": "componente",
      "arquivo": "sons/Som.tsx",
      "descricao": "Componentes Efeito (um som no quadro em) e Trilha (música com fade de saída) que tocam os áudios acima.",
      "params": [
        "som",
        "em",
        "volume?"
      ],
      "duracao": null,
      "tags": [
        "audio",
        "codigo"
      ]
    },
    {
      "nome": "trilha",
      "categoria": "trilha",
      "tipo": "audio",
      "arquivo": "trilha/trilha.mp3",
      "descricao": "trilha de 8,7 s, 110 bpm (110 bpm); repetir em laço para vídeos longos.",
      "params": [
        "volume?",
        "saida?"
      ],
      "duracao": [
        261,
        261
      ],
      "tags": [
        "trilha",
        "musica"
      ],
      "bpm": 110
    },
    {
      "nome": "paleta",
      "categoria": "paleta",
      "tipo": "dados",
      "arquivo": "cores/paleta.json",
      "descricao": "Cores, sombras, area segura, curvas e medidas do estilo (cores/paleta.png é a amostra visual).",
      "params": [],
      "duracao": null,
      "tags": [
        "cor"
      ]
    }
  ]
}
