2.8 KiB
2.8 KiB
PR 012 - Propagacao da Decision 012 para Preload por asset_id
Briefing
Esta PR executa a decision 012, que fecha a identidade normativa de preload em assets.pa.
O objetivo e remover preload por asset_name, adotar asset_id com semantica de java int, e validar preload como parte estrutural da formacao do cart.
Decisions de Origem
../decisions/011-assets-pa-autocontained-runtime-contract.md../decisions/012-assets-preload-asset-id-contract.md
Alvo
Propagar a decisao em specs e codigo do runtime para que:
PreloadEntryseja{ asset_id, slot };- preload invalido falhe no bootstrap;
- o runtime nao dependa de nome para resolver preload.
Escopo
- atualizar
spec 13espec 15; - atualizar structs e parse do header de
assets.pa; - validar preload contra
asset_table; - detectar clash de slot por tipo;
- ajustar
AssetManagere testes para preload porasset_id; - revisar tipos expostos de
asset_idpara semantica dejava int.
Fora de Escopo
- mudar a superficie VM-facing de
asset.load(name, kind, slot); - redesenhar
asset_tablealem do necessario para suportar a decisao; - introduzir compatibilidade legado por
asset_name; - alterar politica de bancos/slots fora da validacao de preload.
Plano de Execucao
- Atualizar specs
13e15com o shape normativo novo e as regras de validacao estrutural. - Trocar
PreloadEntryemprometeu-halparaasset_id. - Revisar os pontos runtime-facing onde
asset_idainda esta fixado como unsigned. - Validar, no parse/bootstrap de
assets.pa, que:- todo preload referencia
asset_idexistente; - nao existe duplicidade de
(bank_type, slot).
- todo preload referencia
- Remover a resolucao nome -> id do caminho de preload no
AssetManager. - Atualizar testes de loader, parse e preload em memoria.
Criterios de Aceite
assets.pacom preload valido porasset_idcarrega normalmente.assets.pacomasset_idausente daasset_tablefalha no bootstrap.assets.pacom clash de slot por tipo falha no bootstrap.- preload deixa de depender de
asset_name. - nenhuma spec vigente continua descrevendo preload por nome.
Tests / Validacao
- teste de parse do header com
PreloadEntry { asset_id, slot }; - teste de rejeicao para
preload.asset_idinexistente; - teste de rejeicao para duplicidade de
(bank_type, slot); - teste de inicializacao do
AssetManagerpreloading porasset_id; - revisao textual das specs
13e15contra adecision 012.
Riscos
- a troca de semantica de
asset_idparajava intpode expor assumptos unsigned espalhados no runtime; - validacao estrutural no loader pode exigir ajuste em fixtures de teste existentes;
- se houver produtor externo ainda emitindo preload por
asset_name, ele quebrara imediatamente, como mandado pela decisao.