extension Unique on List { List unique([Id Function(E element)? id]) { final ids = {}; final list = [...this]; list.retainWhere((x) => ids.add(id != null ? id(x) : x as Id)); return list; } }