serialize function
Sampled subpaths → polyline d attribute. closed[k] appends Z to
subpath k (closed loops in flight); without flags everything is open.
Implementation
String serialize(List<List<double>> subs, [List<bool>? closed]) {
final d = StringBuffer();
for (var k = 0; k < subs.length; k++) {
final o = subs[k];
final n = o.length ~/ 2;
d.write('M${_fmt(o[0])} ${_fmt(o[1])}');
for (var i = 1; i < n; i++) {
d.write('L${_fmt(o[2 * i])} ${_fmt(o[2 * i + 1])}');
}
if (closed != null && k < closed.length && closed[k]) d.write('Z');
}
return d.toString();
}