canonicalAssemblyRules function
Implementation
Map<String, Map<String, Object>> canonicalAssemblyRules(String kind) {
final union = canonicalAssemblyParameterFields();
return {
for (final field in canonicalAssemblyMembers[kind] ?? const <String>[])
field: {
...union[field]!,
if (kind == 'rows' &&
const {'rows', 'seatsPerRow', 'blocks'}.contains(field) ||
kind == 'compartments' && field == 'compartments' ||
kind == 'couch' && field == 'seats' ||
kind == 'bus' && field == 'decks')
'minimum': 1,
if (kind == 'rows' && const {'spacing', 'rowSpacing'}.contains(field))
'exclusiveMinimum': 0,
if (kind == 'bus' && const {'left', 'right'}.contains(field))
'maximum': 3,
if (kind == 'bus' && const {'rear', 'upperRear'}.contains(field))
'maximum': 6,
if (kind == 'bus' && field == 'decks') 'maximum': 2,
if (kind == 'compartments' && field == 'seats') ...{
'minimum': 2,
'maximum': 12,
},
},
};
}