From 1a0a69df5f14b5f9f9d5b5dfec5b3b37d77c2280 Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Sun, 28 Jun 2026 21:37:31 +0200 Subject: [PATCH] feat(draw): drawing-card document envelope model + parser (T-318) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DrawingCardDoc + parseDrawingCardDoc read the `clide draw` JSON: card label/description, primitive svg/svgPath, or a template name plus its fields (for a handler to lower to SVG). Tolerant — a non-object payload is null, blank strings are absent, never throws. Flutter-free, covered by dart test (10 cases). First slice of the drawing-card core (D-103); not yet wired. Co-Authored-By: Claude Opus 4.8 (1M context) --- .pql/changelog/ticket_history/2026-06.sql | 41 ++++++++++++ .pql/changelog/tickets/2026-06.sql | 49 ++++++++++++++ lib/src/draw/draw_doc.dart | 56 ++++++++++++++++ test/draw/draw_doc_test.dart | 81 +++++++++++++++++++++++ 4 files changed, 227 insertions(+) create mode 100644 lib/src/draw/draw_doc.dart create mode 100644 test/draw/draw_doc_test.dart diff --git a/.pql/changelog/ticket_history/2026-06.sql b/.pql/changelog/ticket_history/2026-06.sql index 295270ad..8d739e10 100644 --- a/.pql/changelog/ticket_history/2026-06.sql +++ b/.pql/changelog/ticket_history/2026-06.sql @@ -8143,3 +8143,44 @@ CSS DECISION — inline-normalize (option A): d2 emits a