- Pattern entry:
id,type(parametric | visual),name,description,tags,sizes[],thumbnailPath,projectPath,createdAt,updatedAt. - Storage: SQLite table(s) for entries; project files on disk referenced by path.
- Stored:
designId, optional overrides,measurementSets:[{ name, measurements }]. - Runtime: Load design, instantiate with settings,
draft()thenrender()to SVG.
- Piece: Closed path (points, Bézier), grain line, notches, name; JSON.
- Grading: Per-point deltas per size; grading table: size name → point deltas or rules.
- Project file: JSON:
pieces[],gradingTable,sizes[], metadata.
- Output: SVG (single or multi-piece), PDF (tiled for print). Same for both parametric and visual.