+ assert self._db
+ self.id_ = id_
+ self._collection = collection
+ designed_listings: list[tuple[Design, list[PieceListing]]] = []
+ for listing in self._collection.piece_listings_flat():
+ design = self._db.designs[self._db.pieces[listing[1]].design_id]
+ design = design.alternate_to or design
+ if not (designed_listings and designed_listings[-1][0] == design):
+ designed_listings += [(design, []), ]
+ designed_listings[-1][1] += [listing]
+ self.designs_to_listings = tuple((d, tuple(ls))
+ for d, ls in designed_listings)