import Foundation protocol GenericItem { var id: UUID { get } var tags: [String] { get } var provider: BooruProvider { get } var date: Date { get } var folder: UUID? { get } var lastVisit: Date { get } var visitedCount: Int { get } } extension BooruSearchQuery: GenericItem { var date: Date { searchedAt } var folder: UUID? { nil } var visitedCount: Int { 0 } var lastVisit: Date { searchedAt } } extension SettingsBookmark: GenericItem { var date: Date { createdAt } }