resolveDrawingSvg lowers a DrawingCardDoc to an SVG string: primitive docs use inline svg or read svgPath (via an injected reader); template docs use a registered DrawingRegistry handler, so the d2/icon/compare/image children plug in. Honest DrawErr on no source / unknown template / unreadable path / empty output. Flutter-free, covered by dart test (7 cases). Not yet wired. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>