Map<String, dynamic> toJson() { return { 'a': a, 'b': b, 'c': c, if (components != null) 'components': components!.map((e) => e.toJson()).toList(), }; }