# PROMPT 09 — Mapeamento 1:1 e pré-visualização Use o MASTER CONTEXT. ## Objetivo Implementar a etapa central do produto: mapear colunas fonte para colunas modelo e revisar o resultado antes de processar. ## Interface de mapeamento - mostrar metadados da fonte selecionada e do modelo; - apresentar colunas fonte e destino claramente; - permitir `Select` como interação básica obrigatória; - adicionar drag-and-drop com `@dnd-kit` somente como melhoria, mantendo alternativa completa por teclado/select; - marcar colunas obrigatórias do modelo; - impedir mapeamento duplicado em ambos os sentidos; - permitir deixar colunas não obrigatórias sem mapeamento; - botão de continuar desabilitado enquanto obrigatórias faltarem; - mensagem textual indicando exatamente o que falta. ## Persistência - mapping pertence à operação/fonte atual; - salvar de forma suficiente para retomar a jornada da operação, mas não convertê-lo em template reutilizável; - invalidar/recalcular quando fonte/modelo/header/aba mudar. ## Preview Antes do processamento: - gerar amostra da estrutura resultante; - respeitar ordem/colunas do modelo; - não modificar o modelo persistido; - deixar claro que é prévia; - permitir voltar ao mapeamento sem perder estado válido; - permitir confirmar processamento. ## Acessibilidade - drag via teclado ou alternativa equivalente; - labels explícitos; - foco previsível; - estados não dependem só de cor. ## Testes - 1:1; - obrigatórias; - conflito; - desmapear/remapear; - troca de fonte; - troca de aba/header; - preview com ordem do modelo; - navegação por teclado. ## Entrega Documente o algoritmo de validação de mapping e o contrato do preview.