canonicalAssemblyRules function

Map<String, Map<String, Object>> canonicalAssemblyRules(
  1. String kind
)

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,
        },
      },
  };
}