prometeu-runtime/docs/runtime/pull-requests/016-asset-codec-none-runtime-and-tests.md
2026-03-24 13:40:56 +00:00

62 lines
2.1 KiB
Markdown

# 016 Asset Codec `NONE` Runtime and Tests
## Briefing
Com a decision `013`, o runtime deve migrar o valor canonico de `codec` para `NONE` sem quebrar a transicao curta a partir de `RAW`.
Esta PR executa a propagacao em codigo, fixtures e testes do runtime.
## Decisions de Origem
- `docs/runtime/decisions/013-asset-codec-none-vs-raw.md`
## Alvo
Atualizar o runtime para que:
1. `NONE` seja aceito como valor principal de `codec`;
2. `RAW` seja aceito apenas como alias legado durante a janela curta de transicao;
3. fixtures e testes passem a publicar `NONE` como valor canonico;
4. `TILES` e `SOUNDS` fiquem coerentes com a decision.
## Escopo
- atualizar `crates/console/prometeu-drivers/src/asset.rs`
- atualizar fixtures/testes em `prometeu-drivers`, `prometeu-hal` e `prometeu-system`
- ajustar comentarios inline onde `RAW` ainda apareca como valor canonico
## Fora de Escopo
- remover imediatamente a compatibilidade com `RAW`
- alterar packer
- introduzir novos codecs
- mudar contratos de layout de `TILES` ou `SOUNDS`
- publicar banks genericos novos como `BLOB`
## Plano de Execucao
1. Atualizar o path de resolucao de `codec` para aceitar `NONE` como valor canonico.
2. Preservar `RAW` como alias legado durante a transicao curta.
3. Migrar fixtures e testes para emitir `NONE`.
4. Revisar comentarios e exemplos inline para remover `RAW` como default canonico.
5. Validar que `TILES` e `SOUNDS` continuam operando sem regressao comportamental.
## Criterios de Aceite
- runtime aceita `NONE` em `TILES` e `SOUNDS`
- runtime continua aceitando `RAW` apenas como alias legado
- fixtures e testes passam a usar `NONE` como valor canonico
- nenhum comentario ou helper novo reforca `RAW` como valor principal
## Tests / Validacao
- testes unitarios do asset loader
- testes do runtime/VM que passam por asset loading
- revisao de fixtures de cartridge/asset metadata
## Riscos
- deixar paths diferentes tratando `NONE` e `RAW` de forma inconsistente
- migrar fixtures parcialmente e mascarar regressao real
- prolongar compatibilidade legacy sem rastro claro para remocao futura