10 KiB
| id | ticket | title | status | created | resolved | decision | tags | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| AGD-0033 | studio-scene-pack-runtime-binary-contract | Revise Scene Bank editorial model to Studio-native scene with TMX import-export | accepted | 2026-04-30 | 2026-04-30 | DEC-0030 |
|
Pain
A direcao aceita em DEC-0029 e implementada por PLN-0059 a PLN-0061 tomou um atalho editorial errado: modelamos 1 layer -> 1 TMX, com validacao e Accept por layer, quando o editor suportado (Tiled) opera naturalmente com 1 scene -> 1 TMX contendo multiplos layers.
Isso gerou uma friccao estrutural:
- o fluxo atual separa artificialmente layers que pertencem ao mesmo mapa;
- o
Acceptpor layer conflita com a necessidade de publicar uma scene coesa; - o modelo atual esconde um erro conceitual ao tratar
TMXcomo surface por layer, em vez de surface por scene; - a integracao editorial ficou mais fraca justamente no editor que estamos suportando em wave 1.
Dominio owner desta agenda: studio.
Boundary explicito: studio -> packer -> runtime.
Context
DEC-0029fechou corretamente queTMX/TSXsao surfaces editoriais suportadas, nao canonicas, e que o contrato normativo de publicacao continua sendo o requeststudio -> packer -> SCENE.- O erro nao esta nesse boundary canonico; o erro esta no shape editorial escolhido para a integracao com Tiled.
- A implementacao atual assumiu:
1 layer -> 1 TMX;1 TMX -> 1 TSX;- geracao, validacao e
Acceptcom foco em layer.
- O problema observado no
tiled2reforca essa distorcao: o fluxo de workflow passou a tentar aceitar layer isoladamente, quando o valor editorial real esta na scene inteira. - O Tiled comporta um
TMXcom multiplos layers; cada layer pode ter seu proprio tileset referenciado no mapa, e o authoring natural da scene acontece nesse documento unico. - O runtime continua nao dependendo de
TMX; ele continua dependendo apenas do request canonico aceito e do payload binarioSCENE.
Open Questions
- O modelo wave 1 deve ser formalmente revisado para
1 scene -> 1 TMXcom multiplos layers? Resposta: parcialmente. Essa direcao corrige o erro imediato deTMX por layer, mas a escolha final nao eh promoverTMX unicoa surface principal. A direcao escolhida eh um modelo nativo de scene no Studio, comTMXtratado como formato suportado de import/export. - Devemos abandonar completamente
validate layereaccept layer, deixando apenasgenerate scene,validate sceneeaccept scene? Resposta: sim, e mais do que isso: no modelo escolhido esses verbos deixam de ser a surface principal do workflow editorial. O Studio passa a operar comimporteexportvia wizard para formatos suportados, comTiledcomo primeira opcao. A validacao ocorre sobre o formato canonico do asset de scene noAnalyseou noPack, nao sobre o formato externo. - Como cada layer da scene referencia seu tileset no editor suportado?
Resposta: no caminho de compatibilidade com Tiled, o
TMXpode carregar multiplosTSX, e a scene pode usar ate quatro tilesets distintos. Isso descreve a compatibilidade editorial do import/export, nao o modelo canonico interno do Studio. - Como representar layers com tamanhos independentes dentro da scene? Resposta: o modelo da scene deve aceitar layers com tamanho proprio. No caminho Tiled, mapas infinitos continuam suportados como concern editorial. Camera boundaries ficam para iteracao posterior.
- O
scene-bank.studio.jsondeve continuar carregandowidth/heightpor layer, ou passar a carregar apenas metadata editorial complementar e bindings? Resposta: o asset de scene deve manter uma entidade canonica propria, distinta do request de pack.scene-bank.studio.jsonpode continuar existindo como persistencia editorial dessa entidade, com metadata comowidtheheightpor layer quando fizer sentido, mas sem se confundir com o requeststudio -> packer. - Como o request canonico deve ser projetado sem reintroduzir dependencia canonica em formato editorial?
Resposta: o request
studio -> packercontinua existindo, mas como projeção derivada da entidade canonica do asset de scene, nao como a propria entidade editorial.TMXentra apenas como formato suportado de importacao/exportacao;importatualiza a entidade canonica a partir doTMX, eexportsobrescreve oTMXa partir da entidade canonica. - O
importdeTMXdeve aceitar qualquer alteracao editorial feita externamente no Tiled? Resposta: nao. Oimportdeve aplicar validacoes minimas de compatibilidade antes de alterar a entidade canonica. Mudancas como adicao de novos layers, adicao de novos tilesets, ou alteracao estrutural inesperada de layers/tilesets podem invalidar oTMXpara importacao. Quando isso ocorrer, o Studio deve recusar oimporte emitir logs/diagnostics claros de falha. - Como o fluxo de
TSXdeve se comportar para glyph tilesets especializados? Resposta: o glyph tileset pode gerarTSX, e isso passa a ser tratado comoexportpara formato suportadoTSX (Tiled). Oexportsobrescreve o arquivo existente ou cria um novo, seguindo a mesma filosofia doTMX. - Quais partes de
DEC-0029permanecem validas e quais precisam ser substituidas explicitamente? Resposta: permanece valida a parte que fixaTMX/TSXcomo surfaces editoriais nao canonicas e o requeststudio -> packercomo contrato normativo. Deve ser substituida explicitamente a parte editorial implementada comoTMX por layere o workflowgenerate / validate / acceptpor layer.
Options
Option A - Keep per-layer TMX and patch workflow
- Approach: Manter
1 layer -> 1 TMX, corrigir o bug de workflow deAccept, e ajustar a UX ao redor disso. - Pro: Menor custo imediato sobre a implementacao existente.
- Con: Preserva o erro de modelagem editorial e continua desalinhado com o uso natural do Tiled.
- Maintainability: Fraca. Corrige sintomas sem corrigir o modelo.
Option B - Revise to single TMX per scene and scene-level workflow
- Approach: Revisar a decision para
1 scene -> 1 TMX, com multiplos layers editoriais no mesmo mapa, e movergenerate / validate / acceptpara o nivel da scene. - Pro: Alinha o Studio ao modelo real do Tiled e fecha um boundary editorial mais coerente.
- Con: Exige revisao normativa, refatoracao de specs e reimplementacao parcial do fluxo entregue em
PLN-0060ePLN-0061. - Maintainability: Forte. Remove a distorcao estrutural e preserva o contrato canonico correto.
Option C - Introduce a Studio-native scene model now and demote TMX to import/export
- Approach: Parar de tratar
TMXcomo surface principal e assumir imediatamente um modelo proprio do Studio, usando Tiled apenas como compatibilidade. - Pro: Resolve de vez o acoplamento editorial ao Tiled.
- Con: Exige refatoracao mais profunda agora, incluindo suporte nativo de scene, import/export, migracao editorial e revisao dos plans ja executados.
- Maintainability: Melhor opcao de longo prazo. Remove o erro estrutural na raiz e abre espaco para multiplos editores suportados.
Escolha fechada na agenda: Option C.
Discussion
A correção necessária parece ser de direcao, nao apenas de bug.
O problema central nao eh que o request canonico exista ou que o packer compile SCENE; isso continua correto. O problema eh que o lado editorial foi fatiado na unidade errada. Ao quebrar scene em TMX por layer, o Studio passou a operar contra a gravidade do editor suportado e abriu espaco para workflow incoerente.
A agenda convergiu para um passo adicional: mesmo o modelo TMX unico por scene ainda seria uma otimizacao em torno do Tiled, nao uma surface editorial suficiente para o Studio no medio prazo. A escolha da Option C fecha uma direcao mais limpa:
- preservar o boundary canonico
studio -> packer -> runtime; - introduzir um modelo nativo de scene no Studio como surface principal;
- tratar
TMX/TSXcomo formatos suportados de importacao/exportacao e compatibilidade; - substituir
generate / validate / acceptpor um workflow deimport / exportguiado por wizard para formatos suportados; - aplicar validacoes minimas de compatibilidade no
import, com recusa e logs claros quando o artefato externo divergir estruturalmente do que o Studio suporta; - validar a entidade canonica da scene no
Analyseou noPack; - manter o request canonico de pack como projeção derivada da entidade canonica da scene, e nao como espelho bruto de qualquer formato externo.
Isso substitui explicitamente a parte editorial errada de DEC-0029, sem reabrir a parte do contrato canonico de publicacao que continuou correta.
Resolution
Recomendacao final da agenda:
- revisar
DEC-0029para abandonar o modeloTMX por layer; - nao promover
TMX unico por scenea surface principal do produto; - adotar um modelo nativo de scene no Studio como owner editorial principal;
- tratar
TMX/TSXcomo formatos suportados de import/export e compatibilidade; - substituir o workflow de
generate / validate / acceptporimport / exportcom wizard; - exigir validacoes minimas no
importdeTMX, com falha explicita quando houver divergencia estrutural nao suportada, como novos layers, novos tilesets, ou alteracoes estruturais equivalentes; - tratar a geracao de
TSXpor glyph tileset comoexportpara formato suportadoTSX (Tiled), com sobrescrita ou criacao do arquivo de destino; - validar a entidade canonica do asset de scene no
Analyseou noPack; - preservar a separacao entre:
- entidade canonica do asset de scene no Studio;
- request
studio -> packer; - payload binario
SCENEde runtime;
- preservar como normativa a parte de
DEC-0029que fixaTMX/TSXcomo surfaces editoriais nao canonicas e o requeststudio -> packercomo contrato de publicacao.
Proximo passo sugerido:
- emitir uma nova decision de revisao, substituindo explicitamente a porcao editorial de
DEC-0029; - derivar novos plans para
specs,studioepacker, com migracao do fluxo atual; - tratar a implementacao entregue em
PLN-0060ePLN-0061como baseline a ser revisada, nao como forma final do modelo editorial.