KDX — Koder Document eXchange (formato universal de documento)
Summary
KDX é um proposto formato universal de documento, portável e autocontido — a resposta Koder ao PDF — porém melhor estruturado que o PDF e capaz de representar objetos/funcionalidades que o PDF não contempla (reflow, objetos interativos declarativos, dados embutidos, malhas de cor, 3D, motion, versionamento e acessibilidade by construction).
A tese central: KDX não é um formato novo monolítico; é a composição disciplinada de peças que a Stack já tem —
- KMD = o significado (árvore semântica do documento),
- KVG = as marcas (modelo de imagem vetorial: 2D + mesh + 3D + motion),
- um contrato de página/tema (a ponte reflow ↔ paginado-fixo),
- um container autocontido (fontesimagenscor/dados embutidos),
- perfis de conformância progressiva,
tudo unificado por um render-core canônico consumido tanto pelo Dok (ediçãoexibição) quanto pelos exportadores (PDFHTMLEPUBraster).
Extensão: .kdx. Editor de referência: Dok.
Motivation
Por que não simplesmente usar PDF
O PDF é um modelo de imagem de 1993 (operadores estilo PostScript) com um container de documento parafusado por cima e 30 anos de acreções opcionais (AcroForms, XFA, tagged-PDF, JS, U3D/PRC). Problemas estruturais:
- Visual, não semântico: texto = glifos posicionados; tabela = linhas+texto.
Acessibilidadeextraçãoreflow são afterthoughts (tagged-PDF é opcional e quase sempre quebrado).
- Dois mundos paralelos (content-stream visual × structure-tree lógico) que
precisam ser sincronizados à mão → drift → a11y ruim.
- Object model frágil (indirect objects + xref) — difícil de diffar/versionar;
opaco; corrompe.
- Layout fixo só — péssimo em mobile/acessibilidade.
- Insegurança (JS embutido — vetor histórico de exploits).
Por que não HTML
A plataforma web (HTML+CSS+SVG+Canvas) cobre e excede o PDF no domínio telaRGB, mas não contempla (a) malhas de cor (PDF shadings 4–7 — Coons tensorGouraud) nem (b) cor de impressão (CMYK real, spotSeparation/DeviceN, overprint). O KVG já tem mesh gradient e, com um perfil Print, fecha as duas lacunas — por isso KVG (não HTML) é o substrato de imaging certo.
Goal
Um formato fonte-da-verdade que: (1) renderiza em reflow (tela/mobile) e paginado-fixo (impressão) da mesma fonte; (2) exporta para PDFHTMLEPUB/ DOCX como projeções; (3) é autocontido e self-hosted-first; (4) é diffável em git; (5) tem acessibilidade e determinismo como invariantes.
Naming
- Nome/display: Koder Document · token/extensão:
kdx/.kdx - "X" = eXchange (intercâmbio/portabilidade universal — posicionamento de
rival do PDF), não "Format".
- Padrão da família
k+stem: kmd · kvg · kpkg · kzip · kdx. - Colisões avaliadas e descartadas:
kdf(≡ Key Derivation Function, emkzip/pair) ·
kpage(≡kpagesexistente) ·ked(desfaz dok#011 + colide comkad) ·Kodex(≈Kodix, o SO).kdx= exact-match único no registry (forms.kmd R2/R4; proximidadekd*permitida por R4.5). - Nota histórica irrelevante: existiu um obscuro "KDX" (servidor Hotline-era,
morto) — sem conflito prático.
Non-goals
- KDX não substitui KMD nem KVG — ele os compõe. KMD segue sendo o formato
de doc-prosa leve; KVG segue sendo o formato de gráfico vetorial.
- KVG não vira um formato de documento (não absorve fontestagsannotations/
formsbookmarksmetadata) — isso seria um "clone de PDF". KVG é dono só das marcas.
- Sem scripting Turing-completo no Core (a insegurança do JS-em-PDF).
- Não buscamos pixel-replay de PDFs arbitrários externos — paridade é
determinística através do render-core Koder, não replay de bytes alheios.
Architecture
O princípio: semântica é fonte da verdade; layout é projeção derivada
┌──────────────── KDX (.kdx) ────────────────┐
│ significado (KMD AST) + marcas (KVG) │
│ + contrato de página/tema + assets │
└──────────────────────┬──────────────────────┘
│ render-core (único)
┌──────────────────────┼──────────────────────┐
▼ ▼ ▼
reflow (tela) paginado-fixo (print) export
Dok / mobile Dok print-preview PDF · HTML · EPUB · rasterO significado (seções, headings, parágrafos, tabelas, figuras, math, refs) é o primário; o layout fixo (caixas de página, glifos posicionados) é uma projeção cacheável dele. Isso resolve o pecado nº 1/2 do PDF: a11y e reflow saem por construção, a a11y-tree é gerada (não pode driftar).
As camadas
| Camada | Peça | Papel |
|---|---|---|
| Significado | KMD (AST) | prosa, estrutura, tabelas, refs, dados, forms |
| Marcas/gráfico | KVG (Core+Print) | toda marca visual + projeção de página fixa |
| Página/tema | novo contrato (kmd-ext) | page-sizemargensmasters/capa + binding de tema (Verge) |
| Empacotamento | container .kdx (zip-like) |
fontesimagensICC/dados embutidos |
| Conformância | perfis | Core → Interactive → Motion → Solid → Print → Archive |
| Render | render-core | tela-reflow · página-fixa · export |
Modelo de objetos do PDF, mapeado
O universo de objetos do PDF se parte em duas famílias disjuntas:
| Família | Objetos | Dono no KDX |
|---|---|---|
| Imaging / paint | pathsBézier, fillstroke, shadings (axial/radial |