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