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