save method
Implementation
Future<void> save(TargetPrinter printer) async {
final before = byName(printer.name);
if (_facts[printer.name]?['source'] == 'user' && before?.language != printer.language) {
onLocalProtocolChange?.call({printer.name: printer.language}, const {});
}
final next = [..._printers.where((p) => p.name != printer.name), printer];
await _commit(_withOneDefault(next, preferred: printer.isDefault ? printer.name : null));
}