type Query {
    search(query: String!, limit: Int, offset: Int, filters: SearchFilters): SearchResults!
}

input SearchFilters {
    types: [String!]
    languages: [String!]
    categories: [String!]
    tags: [String!]
    authors: [String!]
    dateFrom: String
    dateTo: String
}

type SearchResults {
    items: [SearchResultItem!]!
    total: Int!
}

type SearchResultItem {
    type: String!
    work: Work
    translation: Translation
    author: Author
    score: Float!
}
