{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
        "query": {
            "type": "object",
            "description": "The query object used to perform the search",
            "properties": {
                "q": {
                    "type": "string",
                    "description": "Free text q string used to perform the item search"
                }
            },
            "required": [
                "q"
            ]
        },
        "response": {
            "type": "object",
            "description": "he response object returned by the search",
            "properties": {
                "nextStart": {
                    "type": "integer",
                    "description": "The index at which the next page of results begins"
                },
                "num": {
                    "type": "integer",
                    "description": "The maximum page size of results that are returned from the current search"
                },
                "results": {
                    "type": "array",
                    "items": {
                        "type": "object"
                    },
                    "description": "A list of JSON objects that correspond to matching search result. Each object has an item id, title and other assorted metadata"
                },
                "start": {
                    "type": "integer",
                    "description": "The index of the first result of this page of results in the context of all matching results"
                },
                "total": {
                    "type": "integer",
                    "description": "The total number of matching results (up to 10000 max provided by API) across all pages of the search"
                }
            },
            "required": [
                "total",
                "num",
                "start",
                "nextStart",
                "results"
            ]
        }
    },
    "required": [
        "query",
        "response"
    ]
}