Roadmap
Fase 1 — Base TTF
La primera fase establece la base completa: parsear, escribir, transformar.
Parser
Decodificar un binario TTF en un struct Font completamente tipado. Todas las
tablas principales decodificadas a campos con nombre. Los glifos decodificados a
contornos y puntos de control — sin almacenamiento de bytes crudos.
Tablas: head, hhea, maxp, OS/2, name, cmap, post, loca, hmtx,
kern, glyf.
Writer
Re-codificar un struct Font de vuelta a un binario TTF. La barra de
corrección: Parse → Write en un archivo de fuente real produce una salida
byte-idéntica.
Motor de Transformación
- Struct
FontPatch: parches con punteros +GlyphTransformopcional Modify(*Font, FontPatch)— único punto de mutación- Registro de plugins:
nombre → func(*Font, json.RawMessage) (FontPatch, error) - Cargador de pipeline JSON
CLI
handyman run pipeline.json input.ttf output.ttf
Transformaciones
| Plugin | Tablas afectadas | Trabajo en contornos |
|---|---|---|
bold | OS/2, glyf | Sí |
width | hmtx, glyf | Sí |
monospace | hmtx | No |
bounce | glyf | Sí |
Fase 2 — Fuentes Variables
Agregar parsing para tablas de variación: fvar, gvar, avar, HVAR,
MVAR. Exponer la mezcla de ejes como una transformación — mezclar a lo largo
de wght o wdth para fuentes que lo soporten, con fallback a manipulación de
contornos para fuentes estáticas.
Fase 3 — CFF/OTF
Agregar un parser de charstrings CFF que produzca el mismo struct Glyph que el
parser TTF. Todas las transformaciones de la Fase 1 funcionan para archivos OTF
sin cambios.
Fase 4 — UI de Escritorio
Vista previa visual de glifos, edición de parámetros en vivo y un constructor de pipelines. El CLI y el formato de pipeline siguen siendo la interfaz principal; la UI es una capa encima.