Spec — Contrato da Caixa Preta (Motor)

Resumo

Especificação da fronteira entre o núcleo e o motor de pontuação. Define a forma da caixa — o que entra, o que sai, quando — sem descrever o que acontece lá dentro. É o entregável da Fase 1 que destrava as três trilhas para o paralelismo.

Decisão

O motor é caixa preta (ver decisoes/03-motor-caixa-preta.md). O núcleo nunca calcula; só recebe e acumula. A pontuação de avaliação enviada pela organização é insumo de entrada da caixa, não conta do núcleo.

Atenção: este spec define apenas o contrato. A lógica interna do motor é adiada e fora de escopo aqui. Não documentar fórmula neste arquivo.


Forma do contrato (a definir/refinar na Fase 1)

A definição abaixo é o esqueleto a fechar — os campos exatos saem do scaffold, mas o formato é este.

Entrada (núcleo → motor)

O núcleo entrega ao motor um resultado validado de uma partida, contendo ao menos:

Saída (motor → núcleo)

O motor devolve, para cada atleta da partida, um número (+/-) a ser acumulado como score_evento.

Frequência / momento

Stub para a Fase 2

Em F2 o motor é substituído por um stub que apenas repassa um número informado à mão (ou fixo provisório). O contrato é o mesmo — só a implementação interna muda quando o motor v1 entrar (Marco 2).

Por que definir só o contrato agora

Adiar o contrato junto travaria as três trilhas de uma vez — o oposto de separá-las. Com o contrato acordado, Plataforma, Aplicativo e Motor trabalham em paralelo sem esperar uns aos outros.

Referências