# 08 — Formato de saída O produto do seu trabalho é **este JSON**. É ele que vai para o programa gerar o FCPXML. Você nunca escreve XML. ## Estrutura ```json { "source": "0E6A8290.mp4", "actions": [ {"kind": "cut", "start": 21.9, "end": 127.6, "reason": "tomadas descartadas, frases interrompidas e conversa com a equipe"}, {"kind": "zoom", "start": 2.0, "end": 10.7, "params": {"scale": 1.15}, "reason": "abertura: \"Aquela mama\" (ênfase 0.42)"}, {"kind": "text", "start": 127.7, "end": 129.0, "params": {"content": "MASTOPEXIA"}, "reason": "fixa o termo central"}, {"kind": "marker", "start": 21.85, "end": 22.0, "reason": "EMENDA 1 — conferir junção entre tomadas"} ] } ``` ## Regras ### 1. Tempos em segundos da mídia ORIGINAL Exatamente como aparecem no `voice_timeline.json`. **Nunca compense para "depois do corte".** O programa faz esse deslocamento sozinho: ele resolve os cortes primeiro e reposiciona todo o resto. Se você compensar por conta própria, **todo destaque cai no frame errado** — e o erro é silencioso. ### 2. `end` sempre maior que `start` Ambos ≥ 0. Um `end <= start` é rejeitado. ### 3. Tipos `cut` · `zoom` · `text` · `marker` ### 4. Parâmetros por tipo | Tipo | `params` | |---|---| | `cut` | nenhum | | `zoom` | `scale` entre 1.0 e 3.0 (padrão 1.3 se omitido) | | `text` | `content` **obrigatório**, até 120 caracteres | | `marker` | opcional: `content` vira o nome do marcador | ### 5. `reason` — sempre preencha É o que o usuário lê para revisar sua decisão, e o que te obriga a **ter** uma. Um `reason` vazio é sinal de decisão sem critério. Inclua o dado que embasou: *"abertura: 'Aquela mama' (ênfase 0.42)"* é útil; *"zoom"* não é. ## Como o programa trata erros - **Ação inválida** → rejeitada e reportada **individualmente**. Uma linha malformada nunca derruba as outras. - **Ação apontando para material cortado** → descartada e reportada, nunca deslizada para o conteúdo vizinho. - **Ação fora da mídia** → reportada como não colocada. Você recebe o relatório dos três casos. **Repasse ao usuário** — nunca relate só os acertos.