JSON Canvas – Um formato de arquivo aberto para dados de canvas infinito
Recepção geral
- Muitos estão entusiasmados por haver um formato aberto e simples para canvases infinitos e elogiam a Obsidian por publicá-lo.
- Outros acham que a especificação é imatura demais para ser chamada de “1.0” e a veem mais como um formato interno da Obsidian do que ainda como um verdadeiro padrão comunitário.
Projeto da especificação: simplicidade vs. completude
- A especificação é muito pequena: nós com tipo/posição/cor, arestas com from/to/cor/rótulo, além de alguns subtipos de nós.
- Alguns apreciam esse minimalismo “ao estilo Markdown” como algo bom para adoção, legibilidade e extensibilidade.
- Outros argumentam que ela é pouco especificada e opinativa: cores predefinidas, tipos fixos de nó, semântica pouco clara para campos como
file,backgroundStylee coordenadas.
Interoperabilidade, extensibilidade e governança
- Muitos gostam do objetivo de intercâmbio entre apps de canvas, mas questionam até onde isso pode ir quando os apps inovam principalmente na semântica e no comportamento dos nós.
- Sugestões:
- Especificação central de base com metadados extensíveis (semelhante a unist ou frontmatter de Markdown).
- Suporte explícito a tipos de nós personalizados, estilos e embeds (URIs, tipos MIME, tipos de links mais ricos).
- Campo de versão no nível superior; convenções para extensões.
- Alguns criticam o lançamento como um “formato aberto 1.0” sem colaboração prévia com outras ferramentas; outros veem isso como um ponto de partida razoável que pode evoluir com feedback.
Detalhes técnicos e partes ausentes
- Pedidos por:
- Bounding box explícita / metadados para a visualização inicial e incorporação.
- Definição mais clara de coordenadas, unidades, comportamento de zoom e origem.
- Ordenação z definida (posteriormente adicionada: ordem do array = z-index).
- Filhos de grupos explícitos em vez de inferir por sobreposição geométrica.
- Mais estilização (espessura/estilo do traço, formas, rabiscos, transparência, roteamento de arestas).
- Debate sobre arrays vs. maps para nós, campos obrigatórios vs. opcionais, e se devem existir “point nodes”.
Escolha do formato: JSON vs. alternativas
- A escolha do JSON é vista como boa para ferramentas, uso na web e filosofia de arquivo de texto; alguns argumentam que SQLite ou formatos binários seriam melhores para integridade e desempenho, enquanto outros observam que portabilidade, diffabilidade e simplicidade favorecem JSON.
- Comparações com SVG, GraphML, Excalidraw, Argdown, HTML e YAML: vários argumentam que reutilizar ou mapear para padrões existentes seria mais sensato; outros dizem que SVG/HTML são de nível baixo demais ou complexos demais para este modelo semântico em forma de grafo.
UX de canvas infinito
- Sentimentos mistos: alguns acham canvases infinitos poderosos; outros os consideram esmagadores e pouco alinhados com seus modelos mentais.
- As sugestões incluem densidade de informação em múltiplas escalas, canvases aninhados e ferramentas que operem sobre subconjuntos/fatias do viewport em vez de documentos inteiros.