validate method
The first thing wrong with the job, or null (the engine's rules).
Implementation
String? validate() {
if (version != currentVersion) return 'label version $version not supported (want $currentVersion)';
if (widthMm < 5 || widthMm > 1000 || heightMm < 5 || heightMm > 1000) {
return 'label paper ${widthMm}x$heightMm mm out of range';
}
final els = elements;
if (els.length > maxElements) return 'label has ${els.length} elements (max $maxElements)';
for (var i = 0; i < els.length; i++) {
final t = els[i]['type'];
if (!_types.contains(t)) return 'label element $i has unknown type "$t"';
if (((els[i]['w'] as num?) ?? 0) < 0 || ((els[i]['h'] as num?) ?? 0) < 0) {
return 'label element $i has a negative size';
}
}
return null;
}