# Agendas Este diretório reúne agendas de discussão arquitetural para itens pendentes ou frágeis do runtime. Objetivo: - explicitar a dor real do sistema; - delimitar o que precisa ser decidido antes de codar; - servir de base para futuras PRs de implementação JVM-grade. As agendas atuais são: - `004-gfx-fault-semantics-and-command-contract.md` - `005-audio-fault-semantics-and-surface.md` - `006-asset-fault-semantics-and-surface.md` - `007-runtime-edge-test-plan.md` - `008-packed-cartridge-loader-pmc.md` - `009-system-run-cart.md` - `010-system-fault-semantics-and-control-surface.md` - `012-vm-owned-random-service.md` - `013-game-memcard-slots-surface-and-semantics.md` - `014-app-home-filesystem-surface-and-semantics.md` ## Sequenciamento Recomendado Ordem sugerida para discussão e futura execução: 1. `012-vm-owned-random-service.md` 2. `013-game-memcard-slots-surface-and-semantics.md` 3. `014-app-home-filesystem-surface-and-semantics.md` 4. `004-gfx-fault-semantics-and-command-contract.md` 5. `005-audio-fault-semantics-and-surface.md` 6. `006-asset-fault-semantics-and-surface.md` 7. `007-runtime-edge-test-plan.md` 8. `008-packed-cartridge-loader-pmc.md` 9. `009-system-run-cart.md` 10. `010-system-fault-semantics-and-control-surface.md` Justificativa curta: - `011` foi fechada pela decisao `006`. - `012` e o primeiro consumidor da base stateful VM-owned fechada em `006`. - `013` fecha o contrato de memcard para jogos (`32 x 32KB`, ownership, identidade e copia fora do jogo). - `014` fecha o contrato de `home` para apps sem abrir FS global. - a decisao `007` fixa o nucleo de fault policy de `fs`; os detalhes ficam distribuidos em `013` e `014`. - `004`, `005` e `006` consolidam fault semantics por dominio com base em `16a`. - a agenda `007` vem depois para transformar as decisoes em cobertura de regressao na borda do runtime. - `008` e importante, mas nao bloqueia bytecode/backend agora. - `009` e `010` ficam no fim porque `run_cart` nao e objetivo do ciclo atual. Dependências principais: - `012` depende da decisao `006` e de `16`/`16a` - `013` depende das decisoes `003`/`007`, de `16a`, de `08` (memcard), de `12` (Hub/OS) e de `13` (`app_mode`) - `014` depende das decisoes `003`/`007`, de `16a`, de `12` (Hub/OS) e de `13` (`app_mode`) - `004` depende de `16a` - `005` depende de `16a` - `006` depende de `16a` - `007` depende da estabilizacao minima das agendas de superficie/fault por dominio - `008` depende de contrato fechado de `13-cartridge.md` + comportamento equivalente ao loader de diretorio - `009` depende da decisao `003`, de `16a` e de `06`, e deve alinhar com `013`/`014` quando usar `fs` - `010` depende de `16a` e da `009` Regra de uso: - se a implementação exigir decisão estrutural, ela deve nascer daqui antes de virar PR de código; - se uma agenda já estiver resolvida, a PR derivada deve citar explicitamente qual decisão foi tomada; - se a agenda revelar ambiguidade demais, ela não deve ser convertida em PR até o alvo ficar preciso.