{
    "openapi": "3.1.0",
    "info": {
        "title": "New Theatre History Project API",
        "version": "0.4.8",
        "description": "API for serving the content for the New Theatre History Project. The API is generated from the content repo.\n\nA static, read-only file API: every response is a pre-built JSON file, so every operation is a GET, there is no authentication, and there are no query parameters or pagination. A record that does not exist returns a plain 404 from the host, with no JSON body. Where an id appears in a path it is exactly as it appears in the record's own `id` field.",
        "license": {
            "name": "MIT",
            "url": "https://github.com/newtheatre/nthp-api/blob/master/LICENCE"
        },
        "contact": {
            "name": "New Theatre History Project",
            "url": "https://history.newtheatre.org.uk"
        }
    },
    "servers": [
        {
            "url": "https://nthp-api.newtheatre.org.uk/v1/{branch}",
            "description": "Production",
            "variables": {
                "branch": {
                    "default": "master",
                    "description": "The production branch of the content repo. Only `master` is guaranteed to exist."
                }
            }
        }
    ],
    "externalDocs": {
        "description": "history-project content repository",
        "url": "https://github.com/newtheatre/history-project"
    },
    "tags": [
        {
            "name": "site",
            "description": "Top level statistics about the archive and the build."
        },
        {
            "name": "years",
            "description": "Academic years."
        },
        {
            "name": "shows",
            "description": "Individual productions, and utilities built from them."
        },
        {
            "name": "seasons",
            "description": "Recurring strands shows are grouped into."
        },
        {
            "name": "venues",
            "description": "Places shows are staged."
        },
        {
            "name": "people",
            "description": "People credited in shows and on committees."
        },
        {
            "name": "roles",
            "description": "Committee and crew role definitions, and who has held them."
        },
        {
            "name": "assets",
            "description": "Images: show posters and shared albums."
        },
        {
            "name": "playwrights",
            "description": "Writers of staged plays."
        },
        {
            "name": "plays",
            "description": "Plays staged, each paired with its writer."
        },
        {
            "name": "history",
            "description": "The theatre's own history, as a timeline."
        },
        {
            "name": "search",
            "description": "The search corpus consumers build their own index from."
        },
        {
            "name": "editors",
            "description": "Inventories for the content editors, joining the SmugMug account to the content that references it. Not part of the site."
        },
        {
            "name": "content-schema",
            "description": "JSON Schema for content repo front matter, for editors and agents authoring content."
        }
    ],
    "paths": {
        "/index.json": {
            "get": {
                "operationId": "getSiteStats",
                "tags": [
                    "site"
                ],
                "summary": "Get site stats",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SiteStats"
                                }
                            }
                        }
                    }
                },
                "description": "Top level statistics for the site, includes counts of records and build information."
            }
        },
        "/years/index.json": {
            "get": {
                "operationId": "getYearIndex",
                "tags": [
                    "years"
                ],
                "summary": "Get year list",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/YearListCollection"
                                }
                            }
                        }
                    }
                },
                "description": "Every academic year the archive covers, earliest first."
            }
        },
        "/years/{id}.json": {
            "get": {
                "operationId": "getYearDetail",
                "tags": [
                    "years"
                ],
                "summary": "Get year detail",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/YearDetail"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found"
                    }
                },
                "description": "Academic years are identified as `YYYY-YY`, e.g. `2024-25`, and `decade` is the calendar year the decade begins in, e.g. `2020`. Fellows and commendations are the people awarded them who graduated in the year. The committee is a list of credits, the same shape as a show's cast and crew."
            }
        },
        "/shows/index.json": {
            "get": {
                "operationId": "getShowIndex",
                "tags": [
                    "shows"
                ],
                "summary": "Get index of shows",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ShowIndexCollection"
                                }
                            }
                        }
                    }
                },
                "description": "Every show in the archive's canonical order: academic year, then season order within the year, then date. Lighter than the show lists embedded in year and season documents."
            }
        },
        "/shows/{yearId}/{slug}.json": {
            "get": {
                "operationId": "getShowDetail",
                "tags": [
                    "shows"
                ],
                "summary": "Get show detail",
                "parameters": [
                    {
                        "name": "yearId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "slug",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ShowDetail"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found"
                    }
                },
                "description": "Shows are identified as `{yearId}/{slug}`, e.g. `2024-25/macbeth`."
            }
        },
        "/seasons/index.json": {
            "get": {
                "operationId": "getSeasonIndex",
                "tags": [
                    "seasons"
                ],
                "summary": "Get list of seasons",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SeasonListCollection"
                                }
                            }
                        }
                    }
                },
                "description": "Every known season, including those with no shows."
            }
        },
        "/seasons/{id}.json": {
            "get": {
                "operationId": "getSeasonDetail",
                "tags": [
                    "seasons"
                ],
                "summary": "Get season detail",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SeasonDetail"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found"
                    }
                },
                "description": "Details of a single season, including show list. Seasons renamed over the years are merged into the current name, the old names listed as aliases."
            }
        },
        "/venues/index.json": {
            "get": {
                "operationId": "getVenueIndex",
                "tags": [
                    "venues"
                ],
                "summary": "Get list of venues",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/VenueCollection"
                                }
                            }
                        }
                    }
                },
                "description": "Every venue referenced by a show, whether documented in the archive or not, sorted by id."
            }
        },
        "/venues/{id}.json": {
            "get": {
                "operationId": "getVenueDetail",
                "tags": [
                    "venues"
                ],
                "summary": "Get venue detail",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/VenueDetail"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found"
                    }
                },
                "description": "Details of a single venue, including show list. Venues with no document of their own are stubs, carrying only name, shows and grouping; sentinel venues stand in for an unknown or online venue."
            }
        },
        "/people/index.json": {
            "get": {
                "operationId": "getPersonIndex",
                "tags": [
                    "people"
                ],
                "summary": "Get index of people",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PersonIndexCollection"
                                }
                            }
                        }
                    }
                },
                "description": "Every person with a detail page, real and virtual, sorted by id."
            }
        },
        "/people/{id}.json": {
            "get": {
                "operationId": "getPersonDetail",
                "tags": [
                    "people"
                ],
                "summary": "Get person detail",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PersonDetail"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found"
                    }
                },
                "description": "Everything known about a person, including their links and news. `student` is worked out from the graduation year and the date the API was built, so it goes stale between builds, as is the `estimated` graduation year. `submitted` says whether the person submitted the record; `submittedDate` gives the date where one was authored."
            }
        },
        "/collaborators/{id}.json": {
            "get": {
                "operationId": "getPersonCollaborators",
                "tags": [
                    "people"
                ],
                "summary": "Get person collaborators",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PersonCollaboratorCollection"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found"
                    }
                },
                "description": "Everyone the person shares a show or a committee with, and the ids of what they shared."
            }
        },
        "/roles/committee/index.json": {
            "get": {
                "operationId": "getCommitteeRoleIndex",
                "tags": [
                    "roles"
                ],
                "summary": "Get list of committee roles",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RoleCollection"
                                }
                            }
                        }
                    }
                },
                "description": "Every committee role held, near-duplicate titles merged into one role with the others listed as aliases. Link to a role by its `id`, never by a slug derived from its name."
            }
        },
        "/roles/committee/{id}.json": {
            "get": {
                "operationId": "getPeopleByCommitteeRole",
                "tags": [
                    "roles"
                ],
                "summary": "Get people by committee role",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PersonCommitteeRoleListCollection"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found"
                    }
                },
                "description": "People are duplicated if they have held the position multiple times."
            }
        },
        "/roles/crew/index.json": {
            "get": {
                "operationId": "getCrewRoleIndex",
                "tags": [
                    "roles"
                ],
                "summary": "Get list of crew roles",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RoleCollection"
                                }
                            }
                        }
                    }
                },
                "description": "Crew roles as defined by the content repo's `_data/roles.yaml`, in the order defined there. Link to a role by its `id`, never by a slug derived from its name."
            }
        },
        "/roles/crew/{id}.json": {
            "get": {
                "operationId": "getPeopleByCrewRole",
                "tags": [
                    "roles"
                ],
                "summary": "Get people by crew role",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PersonShowRoleListCollection"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found"
                    }
                },
                "description": "People are not duplicated."
            }
        },
        "/roles/cast.json": {
            "get": {
                "operationId": "getPeopleCast",
                "tags": [
                    "roles"
                ],
                "summary": "Get people if cast in any show",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PersonShowRoleListCollection"
                                }
                            }
                        }
                    }
                },
                "description": "People are not duplicated. "
            }
        },
        "/on-this-day/{date}.json": {
            "get": {
                "operationId": "getOnThisDay",
                "tags": [
                    "shows"
                ],
                "summary": "Get shows running on a day of the year",
                "parameters": [
                    {
                        "name": "date",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/OnThisDayShowCollection"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found"
                    }
                },
                "description": "Days are identified as `MM-DD`, e.g. `11-13`; every day of the year has a file, the leap day included, and days nothing was running on hold an empty list. A show matches where the day falls within its run, both ends included; shows dated only to the month or year are left out. Shows are ordered by year."
            }
        },
        "/assets/posters.json": {
            "get": {
                "operationId": "getPosterPool",
                "tags": [
                    "assets"
                ],
                "summary": "Get the poster pool",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PosterCollection"
                                }
                            }
                        }
                    }
                },
                "description": "Every show with a primary image, in the archive's canonical show order; each item is a show reference whose `primaryImage` is always present. Consumers pick from the pool themselves; the API does not shuffle it."
            }
        },
        "/assets/album/{id}.json": {
            "get": {
                "operationId": "getAlbumAssets",
                "tags": [
                    "assets"
                ],
                "summary": "Get album assets",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/AssetCollection"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found"
                    }
                },
                "description": "A collection of assets for an album. If response is 404 then the album either doesn't exist or has no assets."
            }
        },
        "/playwrights/index.json": {
            "get": {
                "operationId": "getPlaywrightIndex",
                "tags": [
                    "playwrights"
                ],
                "summary": "Get list of playwrights and shows performed",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PlaywrightCollection"
                                }
                            }
                        }
                    }
                },
                "description": "Every writer of a staged work, by id, named as their latest show spells them."
            }
        },
        "/plays/index.json": {
            "get": {
                "operationId": "getPlayIndex",
                "tags": [
                    "plays"
                ],
                "summary": "Get list of plays and shows performed",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PlayCollection"
                                }
                            }
                        }
                    }
                },
                "description": "Every play staged, one entry per play and writer, ordered by play id."
            }
        },
        "/history/index.json": {
            "get": {
                "operationId": "getHistoryIndex",
                "tags": [
                    "history"
                ],
                "summary": "Get list of history records",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HistoryRecordCollection"
                                }
                            }
                        }
                    }
                },
                "description": "The theatre's timeline, in the order the content repo records it."
            }
        },
        "/search/documents.json": {
            "get": {
                "operationId": "getSearchDocumentIndex",
                "tags": [
                    "search"
                ],
                "summary": "Get search documents",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SearchDocumentCollection"
                                }
                            }
                        }
                    }
                },
                "description": "The whole search corpus, sorted by type then id. Documents are a union discriminated on `type`, each carrying the fields worth searching or filtering on for what it describes. The API ships fields, not an index; the consumer builds its own. Search documents are the one place references are flattened to `{entity}Id` fields, and the record's image to `imageId`, to keep the corpus small."
            }
        },
        "/search/documents/show.json": {
            "get": {
                "operationId": "getShowSearchDocumentIndex",
                "tags": [
                    "search"
                ],
                "summary": "Get show search documents",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SearchDocumentShowCollection"
                                }
                            }
                        }
                    }
                },
                "description": "The show slice of the search corpus."
            }
        },
        "/search/documents/person.json": {
            "get": {
                "operationId": "getPersonSearchDocumentIndex",
                "tags": [
                    "search"
                ],
                "summary": "Get person search documents",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SearchDocumentPersonCollection"
                                }
                            }
                        }
                    }
                },
                "description": "The person slice of the search corpus."
            }
        },
        "/search/documents/venue.json": {
            "get": {
                "operationId": "getVenueSearchDocumentIndex",
                "tags": [
                    "search"
                ],
                "summary": "Get venue search documents",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SearchDocumentVenueCollection"
                                }
                            }
                        }
                    }
                },
                "description": "The venue slice of the search corpus."
            }
        },
        "/search/documents/year.json": {
            "get": {
                "operationId": "getYearSearchDocumentIndex",
                "tags": [
                    "search"
                ],
                "summary": "Get year search documents",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SearchDocumentYearCollection"
                                }
                            }
                        }
                    }
                },
                "description": "The year slice of the search corpus."
            }
        },
        "/editors/smugmug/albums.json": {
            "get": {
                "operationId": "getSmugMugAlbumInventory",
                "tags": [
                    "editors"
                ],
                "summary": "Get the SmugMug album inventory",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SmugMugAlbumInventoryCollection"
                                }
                            }
                        }
                    }
                },
                "description": "Every album in the SmugMug account, by name, each with the records that reference it. An album with an empty `usedBy` is one nothing in the archive links to."
            }
        },
        "/editors/smugmug/album/{key}.json": {
            "get": {
                "operationId": "getSmugMugImageInventory",
                "tags": [
                    "editors"
                ],
                "summary": "Get the images of a SmugMug album",
                "parameters": [
                    {
                        "name": "key",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SmugMugImageInventory"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found"
                    }
                },
                "description": "The images of one album, each with the records that reference it by key, wherever they reference it from; an image with an empty `usedBy` is unused. Written only for the albums whose images the build fetches: the utility albums editors pick keys out of, and the albums a show references."
            }
        },
        "/editors/smugmug/broken.json": {
            "get": {
                "operationId": "getSmugMugBrokenRefs",
                "tags": [
                    "editors"
                ],
                "summary": "Get broken SmugMug references",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SmugMugBrokenRefCollection"
                                }
                            }
                        }
                    }
                },
                "description": "Every reference in the content to a SmugMug key SmugMug could not describe, with the reason it could not. Keys the build never asked about are not listed."
            }
        },
        "/content-schema/{type}.json": {
            "get": {
                "operationId": "getContentSchema",
                "tags": [
                    "content-schema"
                ],
                "summary": "Get a content document's JSON Schema",
                "description": "The JSON Schema (draft 2020-12) an editor validates a content repo front matter document against before submitting it. For people, not machines: content editors and agents authoring or checking `show`, `person`, `venue`, `committee`, `history`, `roles` and `link-types` documents in the content repo. See `content-schema/index.html` for a human-readable rendering of the same schemas.",
                "parameters": [
                    {
                        "name": "type",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "show",
                                "person",
                                "venue",
                                "committee",
                                "history",
                                "roles",
                                "link-types"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "Asset": {
                "description": "A file the archive holds about a record: an image, a video or a document.",
                "properties": {
                    "id": {
                        "description": "SmugMug image key",
                        "examples": [
                            "qABC123"
                        ],
                        "type": "string"
                    },
                    "width": {
                        "anyOf": [
                            {
                                "type": "integer"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Intrinsic width of the image in pixels",
                        "examples": [
                            1600
                        ]
                    },
                    "height": {
                        "anyOf": [
                            {
                                "type": "integer"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Intrinsic height of the image in pixels",
                        "examples": [
                            1200
                        ]
                    },
                    "type": {
                        "description": "Kind of asset, one of `album`, `image`, `video` or `other`",
                        "examples": [
                            "image"
                        ],
                        "type": "string"
                    },
                    "source": {
                        "description": "Where the asset is held, `smugmug` or `file`",
                        "examples": [
                            "smugmug"
                        ],
                        "type": "string"
                    },
                    "mimeType": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Mime type of the asset, where one applies",
                        "examples": [
                            "image/jpeg"
                        ]
                    },
                    "category": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "What the asset depicts, as authored; poster, flyer, programme and headshot are the recognised categories",
                        "examples": [
                            "poster"
                        ]
                    },
                    "title": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Title of the asset, as authored",
                        "examples": [
                            "Programme"
                        ]
                    },
                    "page": {
                        "anyOf": [
                            {
                                "type": "integer"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Page of the document the asset is, where it is one of several",
                        "examples": [
                            2
                        ]
                    },
                    "uploadedAt": {
                        "anyOf": [
                            {
                                "format": "date-time",
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "When the asset was uploaded to SmugMug, where SmugMug knows",
                        "examples": [
                            "2022-01-01T12:34:45.678901Z"
                        ]
                    }
                },
                "required": [
                    "id",
                    "type",
                    "source"
                ],
                "title": "Asset",
                "type": "object"
            },
            "AssetCollection": {
                "description": "The images an album holds, in the order SmugMug gives them.",
                "items": {
                    "$ref": "#/components/schemas/Asset"
                },
                "title": "AssetCollection",
                "type": "array"
            },
            "AssetUse": {
                "description": "A place in the content that references an image or an album by key.",
                "properties": {
                    "targetType": {
                        "description": "What kind of record references the asset, one of `show`, `person` or `venue`",
                        "examples": [
                            "show"
                        ],
                        "type": "string"
                    },
                    "targetId": {
                        "description": "ID of the record referencing the asset",
                        "examples": [
                            "2024-25/macbeth"
                        ],
                        "type": "string"
                    },
                    "title": {
                        "description": "Name of the record referencing the asset",
                        "examples": [
                            "Macbeth"
                        ],
                        "type": "string"
                    },
                    "role": {
                        "description": "What the asset is to the record: its authored category where it has one, otherwise `album`, `asset`, `headshot`, `photo` or `trivia`",
                        "examples": [
                            "poster"
                        ],
                        "type": "string"
                    }
                },
                "required": [
                    "targetType",
                    "targetId",
                    "title",
                    "role"
                ],
                "title": "AssetUse",
                "type": "object"
            },
            "FuzzyDate": {
                "description": "A date of year, month or day precision, as ISO 8601 reduced precision: `YYYY`, `YYYY-MM` or `YYYY-MM-DD`. The length of the string gives the precision the archive holds; a shorter date is not a less certain day, it is all that is recorded.",
                "pattern": "^\\d{4}(-\\d{2}(-\\d{2})?)?$",
                "title": "FuzzyDate",
                "type": "string"
            },
            "HistoryRecord": {
                "description": "A moment in the theatre's history, as the content repo's timeline records it.",
                "properties": {
                    "year": {
                        "description": "Short description of the year of the record, e.g. '1940' / '1940s'",
                        "examples": [
                            "1940s"
                        ],
                        "type": "string"
                    },
                    "yearId": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Exact year ID of the record, in YYYY-YY form",
                        "examples": [
                            "1940-41"
                        ]
                    },
                    "title": {
                        "description": "Title of the record",
                        "examples": [
                            "Theatre built"
                        ],
                        "type": "string"
                    },
                    "description": {
                        "description": "Description of the record, in HTML",
                        "examples": [
                            "<p>Theatre built in 1940</p>"
                        ],
                        "type": "string"
                    },
                    "image": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/HistoryRecordImage"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Image illustrating the record, where there is one"
                    }
                },
                "required": [
                    "year",
                    "title",
                    "description"
                ],
                "title": "HistoryRecord",
                "type": "object"
            },
            "HistoryRecordCollection": {
                "description": "The theatre's timeline, in the order the content repo records it.",
                "items": {
                    "$ref": "#/components/schemas/HistoryRecord"
                },
                "title": "HistoryRecordCollection",
                "type": "array"
            },
            "HistoryRecordImage": {
                "description": "An image illustrating a history record, held outside the asset store.",
                "properties": {
                    "href": {
                        "description": "URL of the image",
                        "examples": [
                            "https://photos.newtheatre.org.uk/i-abc123.jpg"
                        ],
                        "type": "string"
                    },
                    "alt": {
                        "description": "Short caption describing the image",
                        "examples": [
                            "The old auditorium"
                        ],
                        "type": "string"
                    }
                },
                "required": [
                    "href",
                    "alt"
                ],
                "title": "HistoryRecordImage",
                "type": "object"
            },
            "ImageRef": {
                "description": "An image referenced from a list or a summary, by key and intrinsic size.\n\nDetail documents carry the full `Asset` instead. Dimensions are absent only\nwhere SmugMug could not answer for the key.",
                "properties": {
                    "id": {
                        "description": "SmugMug image key",
                        "examples": [
                            "qABC123"
                        ],
                        "type": "string"
                    },
                    "width": {
                        "anyOf": [
                            {
                                "type": "integer"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Intrinsic width of the image in pixels",
                        "examples": [
                            1600
                        ]
                    },
                    "height": {
                        "anyOf": [
                            {
                                "type": "integer"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Intrinsic height of the image in pixels",
                        "examples": [
                            1200
                        ]
                    }
                },
                "required": [
                    "id"
                ],
                "title": "ImageRef",
                "type": "object"
            },
            "Link": {
                "description": "A link to a resource beyond the archive: a profile, a review, a news story.",
                "properties": {
                    "type": {
                        "description": "Type of resource, canonical name where the content repo's `_data/link-types.yaml` defines the type, otherwise as authored. The API carries no icon for a type; the consumer maps the canonical name to one itself",
                        "examples": [
                            "Review"
                        ],
                        "type": "string"
                    },
                    "isNews": {
                        "description": "Whether the type is a news type, an article or a review",
                        "examples": [
                            true
                        ],
                        "type": "boolean"
                    },
                    "href": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "URL of the resource, resolved from the username where the type templates one",
                        "examples": [
                            "https://twitter.com/nnt_official"
                        ]
                    },
                    "hrefSnapshot": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "URL of the archive.is snapshot of the resource, where one has been taken",
                        "examples": [
                            "https://archive.is/abc12"
                        ]
                    },
                    "username": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Username on the service, where the type is a service",
                        "examples": [
                            "nnt_official"
                        ]
                    },
                    "title": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Title of the resource, such as the headline of an article",
                        "examples": [
                            "Student theatre at its best"
                        ]
                    },
                    "date": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/FuzzyDate"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Date the resource was published",
                        "examples": [
                            "2022-01-31"
                        ]
                    },
                    "publisher": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Name of the publisher, given for news and reviews",
                        "examples": [
                            "Impact Magazine"
                        ]
                    },
                    "rating": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Rating a review gave, written as `x/of_y`",
                        "examples": [
                            "4/5"
                        ]
                    },
                    "quote": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Short quotation summarising the resource",
                        "examples": [
                            "A triumph from start to finish"
                        ]
                    },
                    "note": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Note about the resource, displayed alongside the link",
                        "examples": [
                            "Requires a subscription"
                        ]
                    }
                },
                "required": [
                    "type",
                    "isNews"
                ],
                "title": "Link",
                "type": "object"
            },
            "Location": {
                "description": "Where a venue is, as a point in decimal degrees.",
                "properties": {
                    "lat": {
                        "description": "Latitude in decimal degrees",
                        "examples": [
                            52.9385
                        ],
                        "type": "number"
                    },
                    "lon": {
                        "description": "Longitude in decimal degrees",
                        "examples": [
                            -1.1957
                        ],
                        "type": "number"
                    }
                },
                "required": [
                    "lat",
                    "lon"
                ],
                "title": "Location",
                "type": "object"
            },
            "OnThisDayShow": {
                "description": "A show that was running on a given day of the year.",
                "examples": [
                    {
                        "dateEnd": "2024-11-16",
                        "dateStart": "2024-11-13",
                        "id": "2024-25/macbeth",
                        "primaryImage": {
                            "height": 1200,
                            "id": "qABC123",
                            "width": 1600
                        },
                        "title": "Macbeth",
                        "year": 2024,
                        "yearId": "2024-25"
                    }
                ],
                "properties": {
                    "id": {
                        "description": "ID of the show, `{yearId}/{slug}`",
                        "examples": [
                            "2024-25/macbeth"
                        ],
                        "type": "string"
                    },
                    "title": {
                        "description": "Title of the show",
                        "examples": [
                            "Macbeth"
                        ],
                        "type": "string"
                    },
                    "yearId": {
                        "description": "ID of the academic year the show is in, in YYYY-YY form",
                        "examples": [
                            "2024-25"
                        ],
                        "type": "string"
                    },
                    "year": {
                        "description": "Calendar year the academic year starts in",
                        "examples": [
                            2024
                        ],
                        "type": "integer"
                    },
                    "primaryImage": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/ImageRef"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Image standing for the show, where there is one"
                    },
                    "dateStart": {
                        "$ref": "#/components/schemas/FuzzyDate",
                        "description": "First day of the run, always to day precision"
                    },
                    "dateEnd": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/FuzzyDate"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Last day of the run, where the run spans more days"
                    }
                },
                "required": [
                    "id",
                    "title",
                    "yearId",
                    "year",
                    "dateStart"
                ],
                "title": "OnThisDayShow",
                "type": "object"
            },
            "OnThisDayShowCollection": {
                "description": "Shows running on one day of the year, in the archive's canonical show order.\n\nShows dated only to the month or the year cannot be placed on a day, so they\nappear on none.",
                "items": {
                    "$ref": "#/components/schemas/OnThisDayShow"
                },
                "title": "OnThisDayShowCollection",
                "type": "array"
            },
            "PersonCollaborator": {
                "description": "Someone a person worked alongside, and what they worked on together.",
                "properties": {
                    "person": {
                        "$ref": "#/components/schemas/PersonRef",
                        "description": "The collaborator"
                    },
                    "targetIds": {
                        "default": [],
                        "description": "IDs of the shows and academic years they worked on together",
                        "examples": [
                            [
                                "2024-25/macbeth"
                            ]
                        ],
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    }
                },
                "required": [
                    "person"
                ],
                "title": "PersonCollaborator",
                "type": "object"
            },
            "PersonCollaboratorCollection": {
                "description": "Everyone one person worked alongside, ordered by collaborator id.",
                "items": {
                    "$ref": "#/components/schemas/PersonCollaborator"
                },
                "title": "PersonCollaboratorCollection",
                "type": "array"
            },
            "PersonCommitteeRole": {
                "description": "A committee position a person held for one academic year.",
                "properties": {
                    "year": {
                        "$ref": "#/components/schemas/YearRef",
                        "description": "The academic year the position was held in"
                    },
                    "role": {
                        "description": "Position as authored",
                        "examples": [
                            "Publicity Manager"
                        ],
                        "type": "string"
                    }
                },
                "required": [
                    "year",
                    "role"
                ],
                "title": "PersonCommitteeRole",
                "type": "object"
            },
            "PersonCommitteeRoleList": {
                "description": "A person who held a committee position, as the role's own index gives them.",
                "properties": {
                    "person": {
                        "$ref": "#/components/schemas/PersonRef",
                        "description": "The person who held the position"
                    },
                    "year": {
                        "$ref": "#/components/schemas/YearRef",
                        "description": "The academic year the position was held in"
                    },
                    "role": {
                        "description": "Position as authored",
                        "examples": [
                            "Publicity Manager"
                        ],
                        "type": "string"
                    }
                },
                "required": [
                    "person",
                    "year",
                    "role"
                ],
                "title": "PersonCommitteeRoleList",
                "type": "object"
            },
            "PersonCommitteeRoleListCollection": {
                "description": "Everyone who has held one committee position, earliest academic year first.\n\nAliases of the position are folded in, and a person appears once for every year\nthey held it.",
                "items": {
                    "$ref": "#/components/schemas/PersonCommitteeRoleList"
                },
                "title": "PersonCommitteeRoleListCollection",
                "type": "array"
            },
            "PersonCredit": {
                "description": "A person credited in a role, on a show or on a committee.",
                "properties": {
                    "role": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Role as authored",
                        "examples": [
                            "Director"
                        ]
                    },
                    "person": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/PersonRef"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "The person credited, where the credit names one"
                    },
                    "note": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Note about the credit, displayed alongside it",
                        "examples": [
                            "Act 2 only"
                        ]
                    }
                },
                "title": "PersonCredit",
                "type": "object"
            },
            "PersonDetail": {
                "description": "Everything the archive holds about a person.",
                "examples": [
                    {
                        "award": "Best Director",
                        "careers": [
                            "Assistant director, Nottingham Playhouse"
                        ],
                        "committeeRoleCount": 2,
                        "committeeRoles": [
                            {
                                "role": "Publicity Manager",
                                "year": {
                                    "decade": 2020,
                                    "gradYear": 2025,
                                    "id": "2024-25",
                                    "startYear": 2024,
                                    "title": "2024/25"
                                }
                            }
                        ],
                        "content": "<p>Directed Macbeth in 2024/25 and sat on committee twice.</p>",
                        "course": [
                            "English and Philosophy"
                        ],
                        "graduated": {
                            "decade": 2020,
                            "estimated": false,
                            "gradYear": 2026,
                            "id": "2025-26",
                            "startYear": 2025,
                            "title": "2025/26"
                        },
                        "hasBio": true,
                        "headshot": {
                            "category": "headshot",
                            "height": 800,
                            "id": "qDEF456",
                            "mimeType": "image/jpeg",
                            "source": "smugmug",
                            "title": "Headshot",
                            "type": "image",
                            "uploadedAt": "2024-10-02T09:14:52Z",
                            "width": 800
                        },
                        "id": "charlie_carey",
                        "links": [
                            {
                                "href": "https://twitter.com/nnt_official",
                                "isNews": false,
                                "type": "Twitter",
                                "username": "nnt_official"
                            }
                        ],
                        "news": [
                            {
                                "date": "2025-03-04",
                                "href": "https://impactnottingham.com/2025/03/directing-macbeth/",
                                "hrefSnapshot": "https://archive.is/def34",
                                "isNews": true,
                                "publisher": "Impact Magazine",
                                "title": "Directing Macbeth on a student budget",
                                "type": "Article"
                            }
                        ],
                        "postNominals": [
                            "OBE"
                        ],
                        "preNominal": "Professor",
                        "showRoleCount": 7,
                        "showRoles": [
                            {
                                "roles": [
                                    {
                                        "role": "Director",
                                        "roleType": "crew"
                                    },
                                    {
                                        "role": "Second Murderer",
                                        "roleType": "cast"
                                    }
                                ],
                                "show": {
                                    "id": "2024-25/macbeth",
                                    "primaryImage": {
                                        "height": 1200,
                                        "id": "qABC123",
                                        "width": 1600
                                    },
                                    "title": "Macbeth",
                                    "year": 2024,
                                    "yearId": "2024-25"
                                }
                            }
                        ],
                        "student": true,
                        "submitted": true,
                        "submittedDate": "2022-01",
                        "title": "Charlie Carey",
                        "trivia": [
                            {
                                "quote": "I only auditioned because the queue for the bar was too long.",
                                "submittedDate": "2025-02-14",
                                "target": {
                                    "id": "2024-25/macbeth",
                                    "primaryImage": {
                                        "height": 1200,
                                        "id": "qABC123",
                                        "width": 1600
                                    },
                                    "title": "Macbeth",
                                    "type": "show",
                                    "year": 2024,
                                    "yearId": "2024-25"
                                }
                            }
                        ]
                    }
                ],
                "properties": {
                    "id": {
                        "description": "ID of the person, slugified from their name",
                        "examples": [
                            "fred_bloggs"
                        ],
                        "type": "string"
                    },
                    "title": {
                        "description": "Name of the person",
                        "examples": [
                            "Fred Bloggs"
                        ],
                        "type": "string"
                    },
                    "hasBio": {
                        "description": "Whether the archive holds a document about the person, as opposed to knowing them only from the credits they appear in",
                        "examples": [
                            true
                        ],
                        "type": "boolean"
                    },
                    "headshot": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Asset"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "The person's headshot, where there is one"
                    },
                    "graduated": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/PersonGraduated"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "The academic year the person graduated in, where it is known or can be estimated"
                    },
                    "submitted": {
                        "description": "Whether the person submitted the record themselves",
                        "examples": [
                            true
                        ],
                        "type": "boolean"
                    },
                    "submittedDate": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/FuzzyDate"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Date the person submitted the record, where it is known",
                        "examples": [
                            "2022-01"
                        ]
                    },
                    "showRoleCount": {
                        "description": "Number of shows the person is credited on",
                        "examples": [
                            7
                        ],
                        "type": "integer"
                    },
                    "committeeRoleCount": {
                        "description": "Number of committee positions the person has held",
                        "examples": [
                            2
                        ],
                        "type": "integer"
                    },
                    "preNominal": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Style placed before the person's name, as authored; `title` stays the bare name",
                        "examples": [
                            "Sir"
                        ]
                    },
                    "postNominals": {
                        "default": [],
                        "description": "Honours and fellowships placed after the person's name, as authored and in the order they should read; separate from `award`, which is what the theatre gave them on leaving",
                        "examples": [
                            [
                                "OBE",
                                "FRS"
                            ]
                        ],
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "showRoles": {
                        "default": [],
                        "description": "What the person did, by show",
                        "items": {
                            "$ref": "#/components/schemas/PersonShowRoles"
                        },
                        "type": "array"
                    },
                    "committeeRoles": {
                        "default": [],
                        "description": "Committee positions the person has held",
                        "items": {
                            "$ref": "#/components/schemas/PersonCommitteeRole"
                        },
                        "type": "array"
                    },
                    "course": {
                        "default": [],
                        "description": "Courses the person studied",
                        "examples": [
                            [
                                "English"
                            ]
                        ],
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "award": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Award the person received on leaving the theatre, as authored; usually Fellowship, Commendation, Merit or Union Prize, but not held to that set",
                        "examples": [
                            "Fellowship"
                        ]
                    },
                    "careers": {
                        "default": [],
                        "description": "Careers the person has followed, theatre related or not, as authored; the content repo's `_data/careers.yaml` lists the recognised theatre careers but records are not held to it",
                        "examples": [
                            [
                                "Director"
                            ]
                        ],
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "student": {
                        "description": "Whether the person is likely still a student, worked out from their graduation year and the date the API was built, so it goes stale between builds",
                        "examples": [
                            false
                        ],
                        "type": "boolean"
                    },
                    "links": {
                        "default": [],
                        "description": "Links to the person's profiles beyond the archive",
                        "items": {
                            "$ref": "#/components/schemas/Link"
                        },
                        "type": "array"
                    },
                    "news": {
                        "default": [],
                        "description": "Links to news stories about the person",
                        "items": {
                            "$ref": "#/components/schemas/Link"
                        },
                        "type": "array"
                    },
                    "trivia": {
                        "default": [],
                        "description": "Trivia submitted by this person",
                        "items": {
                            "$ref": "#/components/schemas/Trivia"
                        },
                        "type": "array"
                    },
                    "content": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "The person's biography, in HTML"
                    }
                },
                "required": [
                    "id",
                    "title",
                    "hasBio",
                    "submitted",
                    "showRoleCount",
                    "committeeRoleCount",
                    "student"
                ],
                "title": "PersonDetail",
                "type": "object"
            },
            "PersonGraduated": {
                "description": "The academic year a person graduated in, authored or estimated.",
                "properties": {
                    "id": {
                        "description": "ID of the academic year, in YYYY-YY form",
                        "examples": [
                            "2024-25"
                        ],
                        "type": "string"
                    },
                    "title": {
                        "description": "Title of the academic year",
                        "examples": [
                            "2024-25"
                        ],
                        "type": "string"
                    },
                    "startYear": {
                        "description": "Calendar year the academic year starts in",
                        "examples": [
                            2024
                        ],
                        "type": "integer"
                    },
                    "gradYear": {
                        "description": "Calendar year students of this academic year graduate in",
                        "examples": [
                            2025
                        ],
                        "type": "integer"
                    },
                    "decade": {
                        "description": "Calendar year the start year's decade begins in",
                        "examples": [
                            2020
                        ],
                        "type": "integer"
                    },
                    "estimated": {
                        "description": "Whether the year is estimated from the person's credits rather than authored",
                        "examples": [
                            false
                        ],
                        "type": "boolean"
                    }
                },
                "required": [
                    "id",
                    "title",
                    "startYear",
                    "gradYear",
                    "decade",
                    "estimated"
                ],
                "title": "PersonGraduated",
                "type": "object"
            },
            "PersonIndexCollection": {
                "description": "Everyone the archive gives a document to, with a bio or without, by id.",
                "items": {
                    "$ref": "#/components/schemas/PersonIndexItem"
                },
                "title": "PersonIndexCollection",
                "type": "array"
            },
            "PersonIndexItem": {
                "description": "A person as the index of every person gives them.",
                "properties": {
                    "id": {
                        "description": "ID of the person, slugified from their name",
                        "examples": [
                            "fred_bloggs"
                        ],
                        "type": "string"
                    },
                    "title": {
                        "description": "Name of the person",
                        "examples": [
                            "Fred Bloggs"
                        ],
                        "type": "string"
                    },
                    "hasBio": {
                        "description": "Whether the archive holds a document about the person, as opposed to knowing them only from the credits they appear in",
                        "examples": [
                            true
                        ],
                        "type": "boolean"
                    },
                    "headshot": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/ImageRef"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "The person's headshot, where there is one"
                    },
                    "graduated": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/PersonGraduated"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "The academic year the person graduated in, where it is known or can be estimated"
                    },
                    "submitted": {
                        "description": "Whether the person submitted the record themselves",
                        "examples": [
                            true
                        ],
                        "type": "boolean"
                    },
                    "submittedDate": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/FuzzyDate"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Date the person submitted the record, where it is known",
                        "examples": [
                            "2022-01"
                        ]
                    },
                    "showRoleCount": {
                        "description": "Number of shows the person is credited on",
                        "examples": [
                            7
                        ],
                        "type": "integer"
                    },
                    "committeeRoleCount": {
                        "description": "Number of committee positions the person has held",
                        "examples": [
                            2
                        ],
                        "type": "integer"
                    }
                },
                "required": [
                    "id",
                    "title",
                    "hasBio",
                    "submitted",
                    "showRoleCount",
                    "committeeRoleCount"
                ],
                "title": "PersonIndexItem",
                "type": "object"
            },
            "PersonRef": {
                "description": "A person credited somewhere, whether or not the archive holds a bio.",
                "properties": {
                    "id": {
                        "description": "ID of the person",
                        "examples": [
                            "fred_bloggs"
                        ],
                        "type": "string"
                    },
                    "title": {
                        "description": "Name of the person",
                        "examples": [
                            "Fred Bloggs"
                        ],
                        "type": "string"
                    },
                    "isPerson": {
                        "description": "Whether the credit names a person rather than a group",
                        "examples": [
                            true
                        ],
                        "type": "boolean"
                    },
                    "hasBio": {
                        "description": "Whether the archive holds a document about the person, as opposed to knowing them only from the credits they appear in",
                        "examples": [
                            true
                        ],
                        "type": "boolean"
                    },
                    "headshot": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/ImageRef"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "The person's headshot, where there is one"
                    }
                },
                "required": [
                    "id",
                    "title",
                    "isPerson",
                    "hasBio"
                ],
                "title": "PersonRef",
                "type": "object"
            },
            "PersonShowRoleItem": {
                "description": "One role a person took on a show.",
                "properties": {
                    "role": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Role as authored, absent for a cast credit naming no part",
                        "examples": [
                            "Director"
                        ]
                    },
                    "roleType": {
                        "$ref": "#/components/schemas/ShowRoleType",
                        "description": "Whether the role is cast or crew"
                    }
                },
                "required": [
                    "roleType"
                ],
                "title": "PersonShowRoleItem",
                "type": "object"
            },
            "PersonShowRoleList": {
                "description": "A person who took a show role, as the role's own index gives them.",
                "properties": {
                    "person": {
                        "$ref": "#/components/schemas/PersonRef",
                        "description": "The person who took the role"
                    },
                    "role": {
                        "description": "Canonical name of the role",
                        "examples": [
                            "Director"
                        ],
                        "type": "string"
                    },
                    "showCount": {
                        "description": "Number of shows the person took the role on",
                        "examples": [
                            7
                        ],
                        "type": "integer"
                    }
                },
                "required": [
                    "person",
                    "role",
                    "showCount"
                ],
                "title": "PersonShowRoleList",
                "type": "object"
            },
            "PersonShowRoleListCollection": {
                "description": "Everyone who has taken one show role, ordered by person id.\n\nAliases of the role are folded in, and a person appears once however many shows\nthey took it on.",
                "items": {
                    "$ref": "#/components/schemas/PersonShowRoleList"
                },
                "title": "PersonShowRoleListCollection",
                "type": "array"
            },
            "PersonShowRoles": {
                "description": "What a person did on one show.",
                "properties": {
                    "show": {
                        "$ref": "#/components/schemas/ShowRef",
                        "description": "The show the person worked on"
                    },
                    "roles": {
                        "default": [],
                        "description": "Roles the person took on the show",
                        "items": {
                            "$ref": "#/components/schemas/PersonShowRoleItem"
                        },
                        "type": "array"
                    }
                },
                "required": [
                    "show"
                ],
                "title": "PersonShowRoles",
                "type": "object"
            },
            "PlayCollection": {
                "description": "Every play staged, one entry per play and writer, ordered by play id.",
                "items": {
                    "$ref": "#/components/schemas/PlayListItem"
                },
                "title": "PlayCollection",
                "type": "array"
            },
            "PlayListItem": {
                "description": "A play and every show of it, oldest first.",
                "properties": {
                    "id": {
                        "description": "ID of the play, slugified from its title",
                        "examples": [
                            "macbeth"
                        ],
                        "type": "string"
                    },
                    "title": {
                        "description": "Title of the play",
                        "examples": [
                            "Macbeth"
                        ],
                        "type": "string"
                    },
                    "playwright": {
                        "$ref": "#/components/schemas/PlaywrightRef",
                        "description": "Who wrote the play"
                    },
                    "shows": {
                        "default": [],
                        "description": "Shows of the play",
                        "items": {
                            "$ref": "#/components/schemas/ShowDatedRef"
                        },
                        "type": "array"
                    }
                },
                "required": [
                    "id",
                    "title",
                    "playwright"
                ],
                "title": "PlayListItem",
                "type": "object"
            },
            "PlayRef": {
                "description": "A play, the work a show staged.",
                "properties": {
                    "id": {
                        "description": "ID of the play, slugified from its title",
                        "examples": [
                            "macbeth"
                        ],
                        "type": "string"
                    },
                    "title": {
                        "description": "Title of the play",
                        "examples": [
                            "Macbeth"
                        ],
                        "type": "string"
                    }
                },
                "required": [
                    "id",
                    "title"
                ],
                "title": "PlayRef",
                "type": "object"
            },
            "PlaywrightCollection": {
                "description": "Every writer of a staged work, by id, named as their latest show spells them.",
                "items": {
                    "$ref": "#/components/schemas/PlaywrightListItem"
                },
                "title": "PlaywrightCollection",
                "type": "array"
            },
            "PlaywrightListItem": {
                "description": "A writer and every show of their work, oldest first.",
                "properties": {
                    "id": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "ID of the playwright, slugified from their name",
                        "examples": [
                            "william_shakespeare"
                        ]
                    },
                    "name": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Name of the playwright",
                        "examples": [
                            "William Shakespeare"
                        ]
                    },
                    "personId": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "ID of the person the playwright is, where a student wrote it",
                        "examples": [
                            "fred_bloggs"
                        ]
                    },
                    "shows": {
                        "default": [],
                        "description": "Shows of the playwright's work",
                        "items": {
                            "$ref": "#/components/schemas/ShowDatedRef"
                        },
                        "type": "array"
                    }
                },
                "title": "PlaywrightListItem",
                "type": "object"
            },
            "PlaywrightRef": {
                "description": "Whoever wrote the work a show staged.\n\nEvery field is absent for a show that was devised, improvised, of unknown\nauthorship or written by several hands.",
                "properties": {
                    "id": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "ID of the playwright, slugified from their name",
                        "examples": [
                            "william_shakespeare"
                        ]
                    },
                    "name": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Name of the playwright",
                        "examples": [
                            "William Shakespeare"
                        ]
                    },
                    "personId": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "ID of the person the playwright is, where a student wrote it",
                        "examples": [
                            "fred_bloggs"
                        ]
                    }
                },
                "title": "PlaywrightRef",
                "type": "object"
            },
            "PlaywrightShow": {
                "description": "How a show came to be written, as shown alongside its title.",
                "properties": {
                    "id": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "ID of the playwright, slugified from their name",
                        "examples": [
                            "william_shakespeare"
                        ]
                    },
                    "name": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Name of the playwright",
                        "examples": [
                            "William Shakespeare"
                        ]
                    },
                    "personId": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "ID of the person the playwright is, where a student wrote it",
                        "examples": [
                            "fred_bloggs"
                        ]
                    },
                    "type": {
                        "$ref": "#/components/schemas/PlaywrightType",
                        "description": "How the show was written"
                    },
                    "descriptor": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "How the show's authorship reads",
                        "examples": [
                            "by William Shakespeare"
                        ]
                    },
                    "studentWritten": {
                        "description": "Whether a student of the university wrote it",
                        "examples": [
                            false
                        ],
                        "type": "boolean"
                    }
                },
                "required": [
                    "type",
                    "studentWritten"
                ],
                "title": "PlaywrightShow",
                "type": "object"
            },
            "PlaywrightType": {
                "description": "How the work a show staged came to be written.\n\n`playwright` names a writer; `various` is a bill of several writers' work;\n`unknown` is a written work whose author the archive does not know; `devised`\nwas made by the company; `improvised` was made on the night.",
                "enum": [
                    "playwright",
                    "various",
                    "unknown",
                    "devised",
                    "improvised"
                ],
                "title": "PlaywrightType",
                "type": "string"
            },
            "PosterCollection": {
                "description": "Every show with a primary image, in the archive's canonical show order.",
                "items": {
                    "$ref": "#/components/schemas/PosterItem"
                },
                "title": "PosterCollection",
                "type": "array"
            },
            "PosterItem": {
                "description": "A show's primary image, for picking posters to display.",
                "properties": {
                    "id": {
                        "description": "ID of the show, `{yearId}/{slug}`",
                        "examples": [
                            "2024-25/macbeth"
                        ],
                        "type": "string"
                    },
                    "title": {
                        "description": "Title of the show",
                        "examples": [
                            "Macbeth"
                        ],
                        "type": "string"
                    },
                    "yearId": {
                        "description": "ID of the academic year the show is in, in YYYY-YY form",
                        "examples": [
                            "2024-25"
                        ],
                        "type": "string"
                    },
                    "year": {
                        "description": "Calendar year the academic year starts in",
                        "examples": [
                            2024
                        ],
                        "type": "integer"
                    },
                    "primaryImage": {
                        "$ref": "#/components/schemas/ImageRef",
                        "description": "The show's primary image"
                    }
                },
                "required": [
                    "id",
                    "title",
                    "yearId",
                    "year",
                    "primaryImage"
                ],
                "title": "PosterItem",
                "type": "object"
            },
            "Role": {
                "description": "A role held on a show or a committee, aliases folded together.",
                "properties": {
                    "id": {
                        "description": "ID of the role, slugified from its canonical name",
                        "examples": [
                            "publicity_manager"
                        ],
                        "type": "string"
                    },
                    "name": {
                        "description": "Canonical name of the role",
                        "examples": [
                            "Publicity Manager"
                        ],
                        "type": "string"
                    },
                    "aliases": {
                        "default": [],
                        "description": "Other names the role has been authored under",
                        "examples": [
                            [
                                "Publicity"
                            ]
                        ],
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "holdingCount": {
                        "description": "Number of times the role has been held",
                        "examples": [
                            42
                        ],
                        "type": "integer"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "holdingCount"
                ],
                "title": "Role",
                "type": "object"
            },
            "RoleCollection": {
                "description": "Roles of one kind, show or committee.\n\nCrew roles come in the order the content repo defines them, committee roles\nalphabetically; roles named `unknown` are left out of both.",
                "items": {
                    "$ref": "#/components/schemas/Role"
                },
                "title": "RoleCollection",
                "type": "array"
            },
            "SearchDocumentCollection": {
                "description": "The whole search corpus, ordered by type then id.",
                "items": {
                    "discriminator": {
                        "mapping": {
                            "person": "#/components/schemas/SearchDocumentPerson",
                            "show": "#/components/schemas/SearchDocumentShow",
                            "venue": "#/components/schemas/SearchDocumentVenue",
                            "year": "#/components/schemas/SearchDocumentYear"
                        },
                        "propertyName": "type"
                    },
                    "oneOf": [
                        {
                            "$ref": "#/components/schemas/SearchDocumentShow"
                        },
                        {
                            "$ref": "#/components/schemas/SearchDocumentPerson"
                        },
                        {
                            "$ref": "#/components/schemas/SearchDocumentVenue"
                        },
                        {
                            "$ref": "#/components/schemas/SearchDocumentYear"
                        }
                    ]
                },
                "title": "SearchDocumentCollection",
                "type": "array"
            },
            "SearchDocumentPerson": {
                "description": "Anyone credited on a show or committee, whether or not they have a bio.",
                "properties": {
                    "type": {
                        "const": "person",
                        "description": "What the document describes, always `person`",
                        "type": "string"
                    },
                    "title": {
                        "description": "Name of the record, the primary field to search on",
                        "examples": [
                            "Macbeth"
                        ],
                        "type": "string"
                    },
                    "id": {
                        "description": "ID of the record, as its own document is keyed by",
                        "examples": [
                            "2024-25/macbeth"
                        ],
                        "type": "string"
                    },
                    "imageId": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Image illustrating the record, where there is one",
                        "examples": [
                            "abc12"
                        ]
                    },
                    "hasBio": {
                        "description": "Whether the archive holds a document about the person, as opposed to knowing them only from the credits they appear in",
                        "examples": [
                            true
                        ],
                        "type": "boolean"
                    },
                    "graduationYearId": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "ID of the academic year the person graduated in, in YYYY-YY form; absent where they are yet to graduate or nothing is known",
                        "examples": [
                            "2024-25"
                        ]
                    },
                    "graduationYear": {
                        "anyOf": [
                            {
                                "type": "integer"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Calendar year the person graduated in",
                        "examples": [
                            2025
                        ]
                    },
                    "graduationDecade": {
                        "anyOf": [
                            {
                                "type": "integer"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Calendar year the graduation year's decade begins in",
                        "examples": [
                            2020
                        ]
                    },
                    "graduationEstimated": {
                        "anyOf": [
                            {
                                "type": "boolean"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Whether the graduation year is estimated from the person's credits rather than authored",
                        "examples": [
                            false
                        ]
                    },
                    "course": {
                        "default": [],
                        "description": "Courses the person studied",
                        "examples": [
                            [
                                "English"
                            ]
                        ],
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "careers": {
                        "default": [],
                        "description": "Careers the person has followed, theatre related or not",
                        "examples": [
                            [
                                "Director"
                            ]
                        ],
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "award": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Award the person received on leaving the theatre, as authored",
                        "examples": [
                            "Fellowship"
                        ]
                    },
                    "showRoles": {
                        "default": [],
                        "description": "Distinct roles the person has taken on a show, crew roles under their canonical name and acting as `Actor`",
                        "examples": [
                            [
                                "Actor",
                                "Director"
                            ]
                        ],
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "committeeRoles": {
                        "default": [],
                        "description": "Distinct committee positions the person has held, under their canonical name",
                        "examples": [
                            [
                                "Publicity Manager"
                            ]
                        ],
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "showCount": {
                        "description": "Number of shows the person is credited on",
                        "examples": [
                            7
                        ],
                        "type": "integer"
                    },
                    "yearIds": {
                        "default": [],
                        "description": "IDs of the academic years the person is credited in, whether on a show or a committee",
                        "examples": [
                            [
                                "2023-24",
                                "2024-25"
                            ]
                        ],
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "plaintext": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "The person's biography, markup stripped",
                        "examples": [
                            "Fred read English and directed a lot."
                        ]
                    }
                },
                "required": [
                    "type",
                    "title",
                    "id",
                    "hasBio",
                    "showCount"
                ],
                "title": "SearchDocumentPerson",
                "type": "object"
            },
            "SearchDocumentPersonCollection": {
                "description": "The person documents of the search corpus, ordered by id.",
                "items": {
                    "$ref": "#/components/schemas/SearchDocumentPerson"
                },
                "title": "SearchDocumentPersonCollection",
                "type": "array"
            },
            "SearchDocumentShow": {
                "description": "A show, the archive's principal record.",
                "examples": [
                    {
                        "dateStart": "2024-11-13",
                        "decade": 2020,
                        "id": "2024-25/macbeth",
                        "imageId": "qABC123",
                        "people": [
                            "Charlie Carey",
                            "Ben Adeniji",
                            "Holly Howell"
                        ],
                        "plaintext": "A studio staging of the Scottish play, run without an interval.",
                        "playwrightDescriptor": "by William Shakespeare",
                        "season": "In House",
                        "seasonId": "in-house",
                        "title": "Macbeth",
                        "type": "show",
                        "venueId": "nottingham-new-theatre",
                        "venueName": "Nottingham New Theatre",
                        "year": 2024,
                        "yearId": "2024-25"
                    }
                ],
                "properties": {
                    "type": {
                        "const": "show",
                        "description": "What the document describes, always `show`",
                        "type": "string"
                    },
                    "title": {
                        "description": "Name of the record, the primary field to search on",
                        "examples": [
                            "Macbeth"
                        ],
                        "type": "string"
                    },
                    "id": {
                        "description": "ID of the record, as its own document is keyed by",
                        "examples": [
                            "2024-25/macbeth"
                        ],
                        "type": "string"
                    },
                    "imageId": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Image illustrating the record, where there is one",
                        "examples": [
                            "abc12"
                        ]
                    },
                    "yearId": {
                        "description": "ID of the academic year the show ran in, in YYYY-YY form",
                        "examples": [
                            "2024-25"
                        ],
                        "type": "string"
                    },
                    "year": {
                        "description": "Calendar year the academic year starts in",
                        "examples": [
                            2024
                        ],
                        "type": "integer"
                    },
                    "decade": {
                        "description": "Calendar year the start year's decade begins in",
                        "examples": [
                            2020
                        ],
                        "type": "integer"
                    },
                    "season": {
                        "description": "Season as authored on the show",
                        "examples": [
                            "Autumn Season"
                        ],
                        "type": "string"
                    },
                    "seasonId": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "ID of the season, where the authored season is a known one",
                        "examples": [
                            "autumn_season"
                        ]
                    },
                    "venueId": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "ID of the venue the show ran at",
                        "examples": [
                            "nottingham-new-theatre"
                        ]
                    },
                    "venueName": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Name of the venue as authored on the show",
                        "examples": [
                            "Nottingham New Theatre"
                        ]
                    },
                    "dateStart": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/FuzzyDate"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Date the show opened",
                        "examples": [
                            "2024-11-13"
                        ]
                    },
                    "playwrightDescriptor": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "How the show describes its authorship, e.g. `by Shakespeare`, `Devised` or `Various Writers`",
                        "examples": [
                            "by William Shakespeare"
                        ]
                    },
                    "company": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Company that staged the show, where it was not the theatre",
                        "examples": [
                            "Nottingham New Theatre"
                        ]
                    },
                    "people": {
                        "default": [],
                        "description": "Names of everyone credited on the show, cast and crew alike",
                        "examples": [
                            [
                                "Fred Bloggs"
                            ]
                        ],
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "plaintext": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "The show's description, markup stripped",
                        "examples": [
                            "A tragedy of ambition."
                        ]
                    }
                },
                "required": [
                    "type",
                    "title",
                    "id",
                    "yearId",
                    "year",
                    "decade",
                    "season"
                ],
                "title": "SearchDocumentShow",
                "type": "object"
            },
            "SearchDocumentShowCollection": {
                "description": "The show documents of the search corpus, ordered by id.",
                "items": {
                    "$ref": "#/components/schemas/SearchDocumentShow"
                },
                "title": "SearchDocumentShowCollection",
                "type": "array"
            },
            "SearchDocumentVenue": {
                "description": "A venue, whether or not the archive holds a document about it.",
                "properties": {
                    "type": {
                        "const": "venue",
                        "description": "What the document describes, always `venue`",
                        "type": "string"
                    },
                    "title": {
                        "description": "Name of the record, the primary field to search on",
                        "examples": [
                            "Macbeth"
                        ],
                        "type": "string"
                    },
                    "id": {
                        "description": "ID of the record, as its own document is keyed by",
                        "examples": [
                            "2024-25/macbeth"
                        ],
                        "type": "string"
                    },
                    "imageId": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Image illustrating the record, where there is one",
                        "examples": [
                            "abc12"
                        ]
                    },
                    "city": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "City the venue is in, where the archive holds a document for it",
                        "examples": [
                            "Nottingham"
                        ]
                    },
                    "showCount": {
                        "description": "Number of shows that ran at the venue",
                        "examples": [
                            42
                        ],
                        "type": "integer"
                    },
                    "plaintext": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "The venue's description, markup stripped",
                        "examples": [
                            "A studio theatre on University Park."
                        ]
                    }
                },
                "required": [
                    "type",
                    "title",
                    "id",
                    "showCount"
                ],
                "title": "SearchDocumentVenue",
                "type": "object"
            },
            "SearchDocumentVenueCollection": {
                "description": "The venue documents of the search corpus, ordered by id.",
                "items": {
                    "$ref": "#/components/schemas/SearchDocumentVenue"
                },
                "title": "SearchDocumentVenueCollection",
                "type": "array"
            },
            "SearchDocumentYear": {
                "description": "An academic year.",
                "properties": {
                    "type": {
                        "const": "year",
                        "description": "What the document describes, always `year`",
                        "type": "string"
                    },
                    "title": {
                        "description": "Name of the record, the primary field to search on",
                        "examples": [
                            "Macbeth"
                        ],
                        "type": "string"
                    },
                    "id": {
                        "description": "ID of the record, as its own document is keyed by",
                        "examples": [
                            "2024-25/macbeth"
                        ],
                        "type": "string"
                    },
                    "imageId": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Image illustrating the record, where there is one",
                        "examples": [
                            "abc12"
                        ]
                    },
                    "decade": {
                        "description": "Calendar year the start year's decade begins in",
                        "examples": [
                            2020
                        ],
                        "type": "integer"
                    },
                    "showCount": {
                        "description": "Number of shows in the academic year",
                        "examples": [
                            42
                        ],
                        "type": "integer"
                    }
                },
                "required": [
                    "type",
                    "title",
                    "id",
                    "decade",
                    "showCount"
                ],
                "title": "SearchDocumentYear",
                "type": "object"
            },
            "SearchDocumentYearCollection": {
                "description": "The year documents of the search corpus, ordered by id.",
                "items": {
                    "$ref": "#/components/schemas/SearchDocumentYear"
                },
                "title": "SearchDocumentYearCollection",
                "type": "array"
            },
            "SeasonDetail": {
                "description": "A season and its shows; seasons span academic years, so shows run by date.",
                "examples": [
                    {
                        "aliases": [
                            "In-House",
                            "In house"
                        ],
                        "id": "in-house",
                        "name": "In House",
                        "showCount": 12,
                        "shows": [
                            {
                                "dateEnd": "2024-11-16",
                                "dateStart": "2024-11-13",
                                "devised": false,
                                "id": "2024-25/macbeth",
                                "playwright": {
                                    "descriptor": "by William Shakespeare",
                                    "id": "william_shakespeare",
                                    "name": "William Shakespeare",
                                    "studentWritten": false,
                                    "type": "playwright"
                                },
                                "playwrightDescriptor": "by William Shakespeare",
                                "primaryImage": {
                                    "height": 1200,
                                    "id": "qABC123",
                                    "width": 1600
                                },
                                "season": "In House",
                                "seasonId": "in-house",
                                "title": "Macbeth",
                                "venue": {
                                    "id": "nottingham-new-theatre",
                                    "name": "Nottingham New Theatre"
                                },
                                "year": 2024,
                                "yearId": "2024-25"
                            }
                        ]
                    }
                ],
                "properties": {
                    "id": {
                        "description": "ID of the season, slugified from its canonical name",
                        "examples": [
                            "in-house"
                        ],
                        "type": "string"
                    },
                    "name": {
                        "description": "Canonical name of the season",
                        "examples": [
                            "In House"
                        ],
                        "type": "string"
                    },
                    "aliases": {
                        "default": [],
                        "description": "Other names the season has been authored under",
                        "examples": [
                            [
                                "UNCUT"
                            ]
                        ],
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "showCount": {
                        "description": "Number of shows in the season",
                        "examples": [
                            42
                        ],
                        "type": "integer"
                    },
                    "shows": {
                        "default": [],
                        "description": "Shows in the season",
                        "items": {
                            "$ref": "#/components/schemas/ShowList"
                        },
                        "type": "array"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "showCount"
                ],
                "title": "SeasonDetail",
                "type": "object"
            },
            "SeasonList": {
                "description": "A season as the index of seasons gives it.",
                "properties": {
                    "id": {
                        "description": "ID of the season, slugified from its canonical name",
                        "examples": [
                            "in-house"
                        ],
                        "type": "string"
                    },
                    "name": {
                        "description": "Canonical name of the season",
                        "examples": [
                            "In House"
                        ],
                        "type": "string"
                    },
                    "aliases": {
                        "default": [],
                        "description": "Other names the season has been authored under",
                        "examples": [
                            [
                                "UNCUT"
                            ]
                        ],
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "showCount": {
                        "description": "Number of shows in the season",
                        "examples": [
                            42
                        ],
                        "type": "integer"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "showCount"
                ],
                "title": "SeasonList",
                "type": "object"
            },
            "SeasonListCollection": {
                "description": "Every season, in the order the API defines them.",
                "items": {
                    "$ref": "#/components/schemas/SeasonList"
                },
                "title": "SeasonListCollection",
                "type": "array"
            },
            "ShowDatedRef": {
                "description": "A show reference carrying its run, for lists ordered by date.",
                "properties": {
                    "id": {
                        "description": "ID of the show, `{yearId}/{slug}`",
                        "examples": [
                            "2024-25/macbeth"
                        ],
                        "type": "string"
                    },
                    "title": {
                        "description": "Title of the show",
                        "examples": [
                            "Macbeth"
                        ],
                        "type": "string"
                    },
                    "yearId": {
                        "description": "ID of the academic year the show is in, in YYYY-YY form",
                        "examples": [
                            "2024-25"
                        ],
                        "type": "string"
                    },
                    "year": {
                        "description": "Calendar year the academic year starts in",
                        "examples": [
                            2024
                        ],
                        "type": "integer"
                    },
                    "primaryImage": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/ImageRef"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Image standing for the show, where there is one"
                    },
                    "dateStart": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/FuzzyDate"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Date the show opened",
                        "examples": [
                            "2024-11-13"
                        ]
                    },
                    "dateEnd": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/FuzzyDate"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Date the show closed",
                        "examples": [
                            "2024-11-16"
                        ]
                    }
                },
                "required": [
                    "id",
                    "title",
                    "yearId",
                    "year"
                ],
                "title": "ShowDatedRef",
                "type": "object"
            },
            "ShowDetail": {
                "description": "Everything the archive holds about a show.",
                "examples": [
                    {
                        "assets": [
                            {
                                "category": "poster",
                                "height": 1200,
                                "id": "qABC123",
                                "mimeType": "image/jpeg",
                                "source": "smugmug",
                                "title": "Poster",
                                "type": "image",
                                "uploadedAt": "2024-10-28T18:02:11Z",
                                "width": 1600
                            },
                            {
                                "category": "programme",
                                "id": "qGHI789",
                                "mimeType": "application/pdf",
                                "page": 1,
                                "source": "file",
                                "title": "Programme",
                                "type": "other"
                            }
                        ],
                        "cast": [
                            {
                                "person": {
                                    "hasBio": true,
                                    "id": "ben_adeniji",
                                    "isPerson": true,
                                    "title": "Ben Adeniji"
                                },
                                "role": "Macbeth"
                            },
                            {
                                "person": {
                                    "hasBio": false,
                                    "id": "holly_howell",
                                    "isPerson": true,
                                    "title": "Holly Howell"
                                },
                                "role": "Lady Macbeth"
                            },
                            {
                                "person": {
                                    "hasBio": false,
                                    "id": "juhi_andon",
                                    "isPerson": true,
                                    "title": "Juhi Andon"
                                },
                                "role": "Banquo"
                            },
                            {
                                "note": "Also understudied Lady Macbeth",
                                "person": {
                                    "hasBio": false,
                                    "id": "ali_seaborne",
                                    "isPerson": true,
                                    "title": "Ali Seaborne"
                                },
                                "role": "First Witch"
                            }
                        ],
                        "castIncomplete": false,
                        "content": "<p>A studio staging of the Scottish play, run without an interval.</p>",
                        "crew": [
                            {
                                "person": {
                                    "hasBio": true,
                                    "headshot": {
                                        "height": 800,
                                        "id": "qDEF456",
                                        "width": 800
                                    },
                                    "id": "charlie_carey",
                                    "isPerson": true,
                                    "title": "Charlie Carey"
                                },
                                "role": "Director"
                            },
                            {
                                "person": {
                                    "hasBio": true,
                                    "id": "laura_denison",
                                    "isPerson": true,
                                    "title": "Laura Denison"
                                },
                                "role": "Producer"
                            },
                            {
                                "person": {
                                    "hasBio": false,
                                    "id": "rosa_williams",
                                    "isPerson": true,
                                    "title": "Rosa Williams"
                                },
                                "role": "Lighting Designer"
                            },
                            {
                                "person": {
                                    "hasBio": false,
                                    "id": "ben_canning",
                                    "isPerson": true,
                                    "title": "Ben Canning"
                                },
                                "role": "Sound Designer"
                            }
                        ],
                        "crewIncomplete": false,
                        "dateEnd": "2024-11-16",
                        "dateStart": "2024-11-13",
                        "devised": false,
                        "id": "2024-25/macbeth",
                        "ignoreMissing": false,
                        "ignoreMissingInSeasons": false,
                        "links": [
                            {
                                "date": "2024-11-15",
                                "href": "https://impactnottingham.com/2024/11/review-macbeth/",
                                "hrefSnapshot": "https://archive.is/abc12",
                                "isNews": true,
                                "publisher": "Impact Magazine",
                                "quote": "A triumph from start to finish",
                                "rating": "4/5",
                                "title": "Review: Macbeth",
                                "type": "Review"
                            }
                        ],
                        "missingFields": [
                            "excerpt"
                        ],
                        "next": {
                            "id": "2024-25/the_duchess_of_malfi",
                            "title": "The Duchess of Malfi",
                            "year": 2024,
                            "yearId": "2024-25"
                        },
                        "period": "Autumn",
                        "play": {
                            "id": "macbeth",
                            "title": "Macbeth"
                        },
                        "playwright": {
                            "descriptor": "by William Shakespeare",
                            "id": "william_shakespeare",
                            "name": "William Shakespeare",
                            "studentWritten": false,
                            "type": "playwright"
                        },
                        "playwrightDescriptor": "by William Shakespeare",
                        "previous": {
                            "id": "2024-25/the_sinking_place",
                            "title": "The Sinking Place",
                            "year": 2024,
                            "yearId": "2024-25"
                        },
                        "primaryImage": {
                            "height": 1200,
                            "id": "qABC123",
                            "width": 1600
                        },
                        "season": "In House",
                        "seasonId": "in-house",
                        "title": "Macbeth",
                        "tour": [
                            {
                                "dateEnd": "2024-11-23",
                                "dateStart": "2024-11-22",
                                "note": "Two nights as part of the Lakeside student season",
                                "venue": "Lakeside Arts"
                            }
                        ],
                        "trivia": [
                            {
                                "person": {
                                    "hasBio": true,
                                    "id": "laura_denison",
                                    "isPerson": true,
                                    "title": "Laura Denison"
                                },
                                "quote": "The cauldron was a wheelie bin borrowed from the SU and never returned.",
                                "submittedDate": "2025-01"
                            }
                        ],
                        "venue": {
                            "id": "nottingham-new-theatre",
                            "name": "Nottingham New Theatre"
                        },
                        "year": 2024,
                        "yearId": "2024-25"
                    }
                ],
                "properties": {
                    "id": {
                        "description": "ID of the show, `{yearId}/{slug}`",
                        "examples": [
                            "2024-25/macbeth"
                        ],
                        "type": "string"
                    },
                    "title": {
                        "description": "Title of the show",
                        "examples": [
                            "Macbeth"
                        ],
                        "type": "string"
                    },
                    "yearId": {
                        "description": "ID of the academic year the show is in, in YYYY-YY form",
                        "examples": [
                            "2024-25"
                        ],
                        "type": "string"
                    },
                    "year": {
                        "description": "Calendar year the academic year starts in",
                        "examples": [
                            2024
                        ],
                        "type": "integer"
                    },
                    "season": {
                        "description": "Season as authored on the show",
                        "examples": [
                            "In House"
                        ],
                        "type": "string"
                    },
                    "seasonId": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "ID of the season, aliases merged",
                        "examples": [
                            "in-house"
                        ]
                    },
                    "venue": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/VenueRef"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Venue the show ran at, where one is authored"
                    },
                    "dateStart": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/FuzzyDate"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Date the show opened",
                        "examples": [
                            "2024-11-13"
                        ]
                    },
                    "dateEnd": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/FuzzyDate"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Date the show closed",
                        "examples": [
                            "2024-11-16"
                        ]
                    },
                    "primaryImage": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/ImageRef"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Image standing for the show, where there is one"
                    },
                    "playwrightDescriptor": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "How the show's authorship reads",
                        "examples": [
                            "by William Shakespeare"
                        ]
                    },
                    "playwright": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/PlaywrightShow"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "How the show came to be written"
                    },
                    "adaptor": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Who adapted the work, as authored",
                        "examples": [
                            "Fred Bloggs"
                        ]
                    },
                    "devised": {
                        "description": "Whether the show was devised rather than written",
                        "examples": [
                            false
                        ],
                        "type": "boolean"
                    },
                    "play": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/PlayRef"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "The play staged, where the show staged one"
                    },
                    "translator": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Who translated the work, as authored",
                        "examples": [
                            "Fred Bloggs"
                        ]
                    },
                    "company": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Company that staged the show, where it was not the theatre",
                        "examples": [
                            "Nottingham New Theatre"
                        ]
                    },
                    "period": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Period the show is set in, as authored",
                        "examples": [
                            "Victorian"
                        ]
                    },
                    "tour": {
                        "default": [],
                        "description": "Dates the show toured to other venues",
                        "items": {
                            "$ref": "#/components/schemas/ShowTourDate"
                        },
                        "type": "array"
                    },
                    "cast": {
                        "default": [],
                        "description": "Who appeared in the show",
                        "items": {
                            "$ref": "#/components/schemas/PersonCredit"
                        },
                        "type": "array"
                    },
                    "crew": {
                        "default": [],
                        "description": "Who made the show",
                        "items": {
                            "$ref": "#/components/schemas/PersonCredit"
                        },
                        "type": "array"
                    },
                    "castIncomplete": {
                        "description": "Whether the cast list is known to be incomplete",
                        "type": "boolean"
                    },
                    "castNote": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Note about the cast, displayed alongside it"
                    },
                    "crewIncomplete": {
                        "description": "Whether the crew list is known to be incomplete",
                        "type": "boolean"
                    },
                    "crewNote": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Note about the crew, displayed alongside it"
                    },
                    "assets": {
                        "default": [],
                        "description": "Images, videos and documents held about the show",
                        "items": {
                            "$ref": "#/components/schemas/Asset"
                        },
                        "type": "array"
                    },
                    "missingFields": {
                        "default": [],
                        "description": "Facts the show record is missing, as the old site recorded them",
                        "items": {
                            "$ref": "#/components/schemas/ShowMissingField"
                        },
                        "type": "array"
                    },
                    "ignoreMissing": {
                        "description": "Whether the record is authored as not expected to be complete",
                        "type": "boolean"
                    },
                    "links": {
                        "default": [],
                        "description": "Links to press reviews, news stories and recordings of the show",
                        "items": {
                            "$ref": "#/components/schemas/Link"
                        },
                        "type": "array"
                    },
                    "ignoreMissingInSeasons": {
                        "description": "Whether the show is in a season whose records are not expected to be complete",
                        "type": "boolean"
                    },
                    "previous": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/ShowRef"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "The show before this one across the whole archive"
                    },
                    "next": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/ShowRef"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "The show after this one across the whole archive"
                    },
                    "trivia": {
                        "default": [],
                        "description": "Trivia submitted about this show",
                        "items": {
                            "$ref": "#/components/schemas/Trivia"
                        },
                        "type": "array"
                    },
                    "content": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "The show's description, in HTML"
                    }
                },
                "required": [
                    "id",
                    "title",
                    "yearId",
                    "year",
                    "season",
                    "devised",
                    "castIncomplete",
                    "crewIncomplete",
                    "ignoreMissing",
                    "ignoreMissingInSeasons"
                ],
                "title": "ShowDetail",
                "type": "object"
            },
            "ShowIndexCollection": {
                "description": "Every show in the archive's canonical order: year, then season, then date.",
                "items": {
                    "$ref": "#/components/schemas/ShowIndexItem"
                },
                "title": "ShowIndexCollection",
                "type": "array"
            },
            "ShowIndexItem": {
                "description": "A show as the index of every show gives it, kept light for browse pages.",
                "properties": {
                    "id": {
                        "description": "ID of the show, `{yearId}/{slug}`",
                        "examples": [
                            "2024-25/macbeth"
                        ],
                        "type": "string"
                    },
                    "title": {
                        "description": "Title of the show",
                        "examples": [
                            "Macbeth"
                        ],
                        "type": "string"
                    },
                    "yearId": {
                        "description": "ID of the academic year the show is in, in YYYY-YY form",
                        "examples": [
                            "2024-25"
                        ],
                        "type": "string"
                    },
                    "year": {
                        "description": "Calendar year the academic year starts in",
                        "examples": [
                            2024
                        ],
                        "type": "integer"
                    },
                    "season": {
                        "description": "Season as authored on the show",
                        "examples": [
                            "In House"
                        ],
                        "type": "string"
                    },
                    "seasonId": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "ID of the season, aliases merged",
                        "examples": [
                            "in-house"
                        ]
                    },
                    "venue": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/VenueRef"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Venue the show ran at, where one is authored"
                    },
                    "dateStart": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/FuzzyDate"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Date the show opened",
                        "examples": [
                            "2024-11-13"
                        ]
                    },
                    "dateEnd": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/FuzzyDate"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Date the show closed",
                        "examples": [
                            "2024-11-16"
                        ]
                    },
                    "primaryImage": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/ImageRef"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Image standing for the show, where there is one"
                    },
                    "playwrightDescriptor": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "How the show's authorship reads",
                        "examples": [
                            "by William Shakespeare"
                        ]
                    }
                },
                "required": [
                    "id",
                    "title",
                    "yearId",
                    "year",
                    "season"
                ],
                "title": "ShowIndexItem",
                "type": "object"
            },
            "ShowList": {
                "description": "A show as the lists embedded in year, season and venue documents give it.",
                "properties": {
                    "id": {
                        "description": "ID of the show, `{yearId}/{slug}`",
                        "examples": [
                            "2024-25/macbeth"
                        ],
                        "type": "string"
                    },
                    "title": {
                        "description": "Title of the show",
                        "examples": [
                            "Macbeth"
                        ],
                        "type": "string"
                    },
                    "yearId": {
                        "description": "ID of the academic year the show is in, in YYYY-YY form",
                        "examples": [
                            "2024-25"
                        ],
                        "type": "string"
                    },
                    "year": {
                        "description": "Calendar year the academic year starts in",
                        "examples": [
                            2024
                        ],
                        "type": "integer"
                    },
                    "season": {
                        "description": "Season as authored on the show",
                        "examples": [
                            "In House"
                        ],
                        "type": "string"
                    },
                    "seasonId": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "ID of the season, aliases merged",
                        "examples": [
                            "in-house"
                        ]
                    },
                    "venue": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/VenueRef"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Venue the show ran at, where one is authored"
                    },
                    "dateStart": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/FuzzyDate"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Date the show opened",
                        "examples": [
                            "2024-11-13"
                        ]
                    },
                    "dateEnd": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/FuzzyDate"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Date the show closed",
                        "examples": [
                            "2024-11-16"
                        ]
                    },
                    "primaryImage": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/ImageRef"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Image standing for the show, where there is one"
                    },
                    "playwrightDescriptor": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "How the show's authorship reads",
                        "examples": [
                            "by William Shakespeare"
                        ]
                    },
                    "playwright": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/PlaywrightShow"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "How the show came to be written"
                    },
                    "adaptor": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Who adapted the work, as authored",
                        "examples": [
                            "Fred Bloggs"
                        ]
                    },
                    "devised": {
                        "description": "Whether the show was devised rather than written",
                        "examples": [
                            false
                        ],
                        "type": "boolean"
                    }
                },
                "required": [
                    "id",
                    "title",
                    "yearId",
                    "year",
                    "season",
                    "devised"
                ],
                "title": "ShowList",
                "type": "object"
            },
            "ShowMissingField": {
                "description": "A fact a show record is missing, as the old site's `_plugins/show.rb` records them.\n\nValues spell the camelCase field the fact is missing from. How many of these make\na record too thin to show is left to the consumer.",
                "enum": [
                    "dateStart",
                    "poster",
                    "excerpt",
                    "cast",
                    "castIncomplete",
                    "crew",
                    "crewShort",
                    "playwright",
                    "venue"
                ],
                "title": "ShowMissingField",
                "type": "string"
            },
            "ShowRef": {
                "description": "A show referenced from another record.",
                "properties": {
                    "id": {
                        "description": "ID of the show, `{yearId}/{slug}`",
                        "examples": [
                            "2024-25/macbeth"
                        ],
                        "type": "string"
                    },
                    "title": {
                        "description": "Title of the show",
                        "examples": [
                            "Macbeth"
                        ],
                        "type": "string"
                    },
                    "yearId": {
                        "description": "ID of the academic year the show is in, in YYYY-YY form",
                        "examples": [
                            "2024-25"
                        ],
                        "type": "string"
                    },
                    "year": {
                        "description": "Calendar year the academic year starts in",
                        "examples": [
                            2024
                        ],
                        "type": "integer"
                    },
                    "primaryImage": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/ImageRef"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Image standing for the show, where there is one"
                    }
                },
                "required": [
                    "id",
                    "title",
                    "yearId",
                    "year"
                ],
                "title": "ShowRef",
                "type": "object"
            },
            "ShowRoleType": {
                "description": "Which credit list a show role comes from: `cast` acted, `crew` made it.",
                "enum": [
                    "cast",
                    "crew"
                ],
                "title": "ShowRoleType",
                "type": "string"
            },
            "ShowTourDate": {
                "description": "A run of the show at another venue, while on tour.",
                "properties": {
                    "venue": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Venue the show toured to, as authored",
                        "examples": [
                            "Lakeside Arts"
                        ]
                    },
                    "dateStart": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/FuzzyDate"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Date the run at the venue opened"
                    },
                    "dateEnd": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/FuzzyDate"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Date the run at the venue closed"
                    },
                    "note": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Note about the tour date"
                    }
                },
                "title": "ShowTourDate",
                "type": "object"
            },
            "SiteStats": {
                "description": "What the archive holds and how it was built, as of the last build.",
                "examples": [
                    {
                        "apiVersion": "0.4.2",
                        "branch": "master",
                        "buildNumber": "42",
                        "buildTime": "2025-08-23T01:12:45.678901Z",
                        "commit": "1f0a9c2e0c0a4a1b8d3f6e5c4b3a29180706f5e4",
                        "creditCount": 21840,
                        "firstYearId": "1940-41",
                        "latestYearId": "2024-25",
                        "personCount": 4820,
                        "personWithBioCount": 613,
                        "personWithHeadshotCount": 402,
                        "searchDocumentCount": 6388,
                        "showCount": 1420,
                        "showWithImageCount": 984,
                        "triviaCount": 318,
                        "venueCount": 63,
                        "yearCount": 85
                    }
                ],
                "properties": {
                    "buildTime": {
                        "description": "When was the API built, in UTC.",
                        "examples": [
                            "2022-01-01T12:34:45.678901Z"
                        ],
                        "format": "date-time",
                        "type": "string"
                    },
                    "branch": {
                        "description": "Branch of the repository the API was built from.",
                        "examples": [
                            "master"
                        ],
                        "type": "string"
                    },
                    "apiVersion": {
                        "description": "Version of nthp-api that built the API.",
                        "examples": [
                            "0.3.0"
                        ],
                        "type": "string"
                    },
                    "commit": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Commit of the repository the API was built from, where it was built by CI.",
                        "examples": [
                            "1f0a9c2e0c0a4a1b8d3f6e5c4b3a29180706f5e4"
                        ]
                    },
                    "buildNumber": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Number of the GitHub Actions run that built the API, where it was built by one.",
                        "examples": [
                            "42"
                        ]
                    },
                    "showCount": {
                        "description": "Number of shows in the database.",
                        "examples": [
                            1234
                        ],
                        "type": "integer"
                    },
                    "personCount": {
                        "description": "Number of people with a page, those with a bio record and those known only from credits alike.",
                        "examples": [
                            1234
                        ],
                        "type": "integer"
                    },
                    "personWithBioCount": {
                        "description": "Number of people with bio records.",
                        "examples": [
                            1234
                        ],
                        "type": "integer"
                    },
                    "personWithHeadshotCount": {
                        "description": "Number of people with a headshot.",
                        "examples": [
                            1234
                        ],
                        "type": "integer"
                    },
                    "showWithImageCount": {
                        "description": "Number of shows with a primary image.",
                        "examples": [
                            1234
                        ],
                        "type": "integer"
                    },
                    "venueCount": {
                        "description": "Number of venues, documented or merely referenced by a show.",
                        "examples": [
                            1234
                        ],
                        "type": "integer"
                    },
                    "yearCount": {
                        "description": "Number of academic years covered by the archive.",
                        "examples": [
                            85
                        ],
                        "type": "integer"
                    },
                    "firstYearId": {
                        "description": "ID of the earliest academic year covered, in YYYY-YY form.",
                        "examples": [
                            "1940-41"
                        ],
                        "type": "string"
                    },
                    "latestYearId": {
                        "description": "ID of the most recent academic year covered, in YYYY-YY form.",
                        "examples": [
                            "2024-25"
                        ],
                        "type": "string"
                    },
                    "creditCount": {
                        "description": "Number of credits, inc. cast/crew/committee roles.",
                        "examples": [
                            1234
                        ],
                        "type": "integer"
                    },
                    "triviaCount": {
                        "description": "Number of bits of trivia or stories.",
                        "examples": [
                            1234
                        ],
                        "type": "integer"
                    },
                    "searchDocumentCount": {
                        "description": "Number of documents in the search corpus, shows, people, venues and years together.",
                        "examples": [
                            1234
                        ],
                        "type": "integer"
                    }
                },
                "required": [
                    "buildTime",
                    "branch",
                    "apiVersion",
                    "showCount",
                    "personCount",
                    "personWithBioCount",
                    "personWithHeadshotCount",
                    "showWithImageCount",
                    "venueCount",
                    "yearCount",
                    "firstYearId",
                    "latestYearId",
                    "creditCount",
                    "triviaCount",
                    "searchDocumentCount"
                ],
                "title": "SiteStats",
                "type": "object"
            },
            "SmugMugAlbumInventory": {
                "description": "An album, and the shows whose production shots it holds.",
                "properties": {
                    "key": {
                        "description": "SmugMug album key",
                        "examples": [
                            "dvVPZh"
                        ],
                        "type": "string"
                    },
                    "name": {
                        "description": "Name of the album in SmugMug",
                        "examples": [
                            "East 2013"
                        ],
                        "type": "string"
                    },
                    "urlName": {
                        "description": "Name of the album as it appears in its SmugMug URL",
                        "examples": [
                            "East-2013"
                        ],
                        "type": "string"
                    },
                    "webUri": {
                        "description": "URL of the album on the SmugMug site",
                        "examples": [
                            "https://photos.newtheatre.org.uk/2012-13/East-2013"
                        ],
                        "type": "string"
                    },
                    "imageCount": {
                        "description": "Number of images SmugMug holds in the album",
                        "examples": [
                            379
                        ],
                        "type": "integer"
                    },
                    "lastUpdated": {
                        "anyOf": [
                            {
                                "format": "date-time",
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "When the album was last changed in SmugMug",
                        "examples": [
                            "2015-11-06T16:54:32Z"
                        ]
                    },
                    "usedBy": {
                        "default": [],
                        "description": "Records referencing the album; empty means nothing in the archive links to it",
                        "items": {
                            "$ref": "#/components/schemas/AssetUse"
                        },
                        "type": "array"
                    }
                },
                "required": [
                    "key",
                    "name",
                    "urlName",
                    "webUri",
                    "imageCount"
                ],
                "title": "SmugMugAlbumInventory",
                "type": "object"
            },
            "SmugMugAlbumInventoryCollection": {
                "description": "Every album in the SmugMug account, by name.",
                "items": {
                    "$ref": "#/components/schemas/SmugMugAlbumInventory"
                },
                "title": "SmugMugAlbumInventoryCollection",
                "type": "array"
            },
            "SmugMugAlbumSummary": {
                "description": "A SmugMug album as the account lists it.",
                "properties": {
                    "key": {
                        "description": "SmugMug album key",
                        "examples": [
                            "dvVPZh"
                        ],
                        "type": "string"
                    },
                    "name": {
                        "description": "Name of the album in SmugMug",
                        "examples": [
                            "East 2013"
                        ],
                        "type": "string"
                    },
                    "urlName": {
                        "description": "Name of the album as it appears in its SmugMug URL",
                        "examples": [
                            "East-2013"
                        ],
                        "type": "string"
                    },
                    "webUri": {
                        "description": "URL of the album on the SmugMug site",
                        "examples": [
                            "https://photos.newtheatre.org.uk/2012-13/East-2013"
                        ],
                        "type": "string"
                    },
                    "imageCount": {
                        "description": "Number of images SmugMug holds in the album",
                        "examples": [
                            379
                        ],
                        "type": "integer"
                    },
                    "lastUpdated": {
                        "anyOf": [
                            {
                                "format": "date-time",
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "When the album was last changed in SmugMug",
                        "examples": [
                            "2015-11-06T16:54:32Z"
                        ]
                    }
                },
                "required": [
                    "key",
                    "name",
                    "urlName",
                    "webUri",
                    "imageCount"
                ],
                "title": "SmugMugAlbumSummary",
                "type": "object"
            },
            "SmugMugBrokenRef": {
                "description": "A content reference to a SmugMug key SmugMug could not describe.",
                "properties": {
                    "targetType": {
                        "description": "What kind of record references the asset, one of `show`, `person` or `venue`",
                        "examples": [
                            "show"
                        ],
                        "type": "string"
                    },
                    "targetId": {
                        "description": "ID of the record referencing the asset",
                        "examples": [
                            "2024-25/macbeth"
                        ],
                        "type": "string"
                    },
                    "title": {
                        "description": "Name of the record referencing the asset",
                        "examples": [
                            "Macbeth"
                        ],
                        "type": "string"
                    },
                    "role": {
                        "description": "What the asset is to the record: its authored category where it has one, otherwise `album`, `asset`, `headshot`, `photo` or `trivia`",
                        "examples": [
                            "poster"
                        ],
                        "type": "string"
                    },
                    "key": {
                        "description": "SmugMug image key as the content references it",
                        "examples": [
                            "Dg7GGwL"
                        ],
                        "type": "string"
                    },
                    "reason": {
                        "description": "Why SmugMug could not describe the key: `not_found` for a key SmugMug does not know, `no_dimensions` for one it knows but will not give a size for, `fetch_failed` where the request itself failed",
                        "examples": [
                            "not_found"
                        ],
                        "type": "string"
                    }
                },
                "required": [
                    "targetType",
                    "targetId",
                    "title",
                    "role",
                    "key",
                    "reason"
                ],
                "title": "SmugMugBrokenRef",
                "type": "object"
            },
            "SmugMugBrokenRefCollection": {
                "description": "Every content reference to a key SmugMug could not describe.",
                "items": {
                    "$ref": "#/components/schemas/SmugMugBrokenRef"
                },
                "title": "SmugMugBrokenRefCollection",
                "type": "array"
            },
            "SmugMugImageInventory": {
                "description": "The images of one album, each with the records that reference it.",
                "properties": {
                    "album": {
                        "$ref": "#/components/schemas/SmugMugAlbumSummary",
                        "description": "The album the images belong to"
                    },
                    "images": {
                        "default": [],
                        "description": "Images in the album, in the order SmugMug gives them",
                        "items": {
                            "$ref": "#/components/schemas/SmugMugImageInventoryItem"
                        },
                        "type": "array"
                    }
                },
                "required": [
                    "album"
                ],
                "title": "SmugMugImageInventory",
                "type": "object"
            },
            "SmugMugImageInventoryItem": {
                "description": "One image in an album, and what the archive uses it for.",
                "properties": {
                    "key": {
                        "description": "SmugMug image key, as content references it",
                        "examples": [
                            "Dg7GGwL"
                        ],
                        "type": "string"
                    },
                    "fileName": {
                        "description": "Name of the file as uploaded",
                        "examples": [
                            "macbeth-poster.jpg"
                        ],
                        "type": "string"
                    },
                    "title": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Title given to the image in SmugMug",
                        "examples": [
                            "Macbeth poster"
                        ]
                    },
                    "width": {
                        "anyOf": [
                            {
                                "type": "integer"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Intrinsic width of the image in pixels",
                        "examples": [
                            1600
                        ]
                    },
                    "height": {
                        "anyOf": [
                            {
                                "type": "integer"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Intrinsic height of the image in pixels",
                        "examples": [
                            1200
                        ]
                    },
                    "isVideo": {
                        "description": "Whether the asset is a video rather than an image",
                        "examples": [
                            false
                        ],
                        "type": "boolean"
                    },
                    "uploadedAt": {
                        "anyOf": [
                            {
                                "format": "date-time",
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "When the image was uploaded to SmugMug",
                        "examples": [
                            "2013-06-04T12:00:00Z"
                        ]
                    },
                    "webUri": {
                        "description": "URL of the image on the SmugMug site",
                        "examples": [
                            "https://photos.newtheatre.org.uk/i-Dg7GGwL"
                        ],
                        "type": "string"
                    },
                    "usedBy": {
                        "default": [],
                        "description": "Records referencing the image by key, wherever they reference it from; empty means the image is unused",
                        "items": {
                            "$ref": "#/components/schemas/AssetUse"
                        },
                        "type": "array"
                    }
                },
                "required": [
                    "key",
                    "fileName",
                    "isVideo",
                    "webUri"
                ],
                "title": "SmugMugImageInventoryItem",
                "type": "object"
            },
            "Trivia": {
                "description": "A story or quote submitted about a show.",
                "properties": {
                    "quote": {
                        "description": "The quote",
                        "examples": [
                            "Every character in this play was portrayed by a perfectly circular Victoria Sponge"
                        ],
                        "type": "string"
                    },
                    "submittedDate": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/FuzzyDate"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "The date the quote was submitted; absent where it is likely pulled from the programme or another source",
                        "examples": [
                            "2022-01"
                        ]
                    },
                    "person": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/PersonRef"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Who submitted the quote, where they are known; absent on a person's own document, where the person is the one submitting"
                    },
                    "target": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/TriviaTarget"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "What the quote is about; absent on the target's own document"
                    }
                },
                "required": [
                    "quote"
                ],
                "title": "Trivia",
                "type": "object"
            },
            "TriviaTarget": {
                "description": "What a piece of trivia is about; only shows carry trivia today.",
                "properties": {
                    "id": {
                        "description": "ID of the show, `{yearId}/{slug}`",
                        "examples": [
                            "2024-25/macbeth"
                        ],
                        "type": "string"
                    },
                    "title": {
                        "description": "Title of the show",
                        "examples": [
                            "Macbeth"
                        ],
                        "type": "string"
                    },
                    "yearId": {
                        "description": "ID of the academic year the show is in, in YYYY-YY form",
                        "examples": [
                            "2024-25"
                        ],
                        "type": "string"
                    },
                    "year": {
                        "description": "Calendar year the academic year starts in",
                        "examples": [
                            2024
                        ],
                        "type": "integer"
                    },
                    "primaryImage": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/ImageRef"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Image standing for the show, where there is one"
                    },
                    "type": {
                        "$ref": "#/components/schemas/TriviaTargetType",
                        "description": "What kind of record the target is"
                    }
                },
                "required": [
                    "id",
                    "title",
                    "yearId",
                    "year",
                    "type"
                ],
                "title": "TriviaTarget",
                "type": "object"
            },
            "TriviaTargetType": {
                "description": "What kind of record a piece of trivia is about; only shows carry trivia.",
                "enum": [
                    "show"
                ],
                "title": "TriviaTargetType",
                "type": "string"
            },
            "VenueCollection": {
                "description": "Every venue, documented or merely referenced by a show, ordered by id.",
                "items": {
                    "$ref": "#/components/schemas/VenueList"
                },
                "title": "VenueCollection",
                "type": "array"
            },
            "VenueDetail": {
                "description": "Everything the archive holds about a venue.\n\nA venue only referenced by shows is a stub: it carries no assets, links or\ndescription, just its name and the shows that ran there.",
                "examples": [
                    {
                        "assets": [
                            {
                                "height": 1333,
                                "id": "qJKL012",
                                "mimeType": "image/jpeg",
                                "source": "smugmug",
                                "title": "The auditorium",
                                "type": "image",
                                "uploadedAt": "2023-06-11T15:40:00Z",
                                "width": 2000
                            }
                        ],
                        "built": 1979,
                        "city": "Nottingham",
                        "content": "<p>The society's own theatre, on University Park campus.</p>",
                        "group": "University Park",
                        "hasRecord": true,
                        "id": "nottingham-new-theatre",
                        "links": [
                            {
                                "href": "https://newtheatre.org.uk/",
                                "isNews": false,
                                "title": "New Theatre",
                                "type": "Website"
                            }
                        ],
                        "location": {
                            "lat": 52.9385,
                            "lon": -1.1957
                        },
                        "name": "Nottingham New Theatre",
                        "sentinel": false,
                        "showCount": 1420,
                        "shows": [
                            {
                                "dateEnd": "2024-11-16",
                                "dateStart": "2024-11-13",
                                "devised": false,
                                "id": "2024-25/macbeth",
                                "playwright": {
                                    "descriptor": "by William Shakespeare",
                                    "id": "william_shakespeare",
                                    "name": "William Shakespeare",
                                    "studentWritten": false,
                                    "type": "playwright"
                                },
                                "playwrightDescriptor": "by William Shakespeare",
                                "primaryImage": {
                                    "height": 1200,
                                    "id": "qABC123",
                                    "width": 1600
                                },
                                "season": "In House",
                                "seasonId": "in-house",
                                "title": "Macbeth",
                                "venue": {
                                    "id": "nottingham-new-theatre",
                                    "name": "Nottingham New Theatre"
                                },
                                "year": 2024,
                                "yearId": "2024-25"
                            }
                        ]
                    }
                ],
                "properties": {
                    "id": {
                        "description": "ID of the venue, slugified from the authored venue name",
                        "examples": [
                            "new-theatre"
                        ],
                        "type": "string"
                    },
                    "name": {
                        "description": "Name of the venue",
                        "examples": [
                            "New Theatre"
                        ],
                        "type": "string"
                    },
                    "showCount": {
                        "description": "Number of shows at the venue",
                        "examples": [
                            42
                        ],
                        "type": "integer"
                    },
                    "group": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Name of the group the venue belongs to, where shows give one, for grouping venues such as Edinburgh's C venues",
                        "examples": [
                            "C venues"
                        ]
                    },
                    "hasRecord": {
                        "description": "Whether the venue is documented in the archive; venues only referenced by shows are stubs, carrying no details beyond name and shows",
                        "examples": [
                            true
                        ],
                        "type": "boolean"
                    },
                    "sentinel": {
                        "description": "Whether the venue stands in for the absence of a venue, such as an unknown venue or an online performance",
                        "examples": [
                            false
                        ],
                        "type": "boolean"
                    },
                    "built": {
                        "anyOf": [
                            {
                                "type": "integer"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Year the venue was built",
                        "examples": [
                            1965
                        ]
                    },
                    "location": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Location"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Where the venue is, where it is known"
                    },
                    "city": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "City the venue is in",
                        "examples": [
                            "Nottingham"
                        ]
                    },
                    "assets": {
                        "default": [],
                        "description": "Images held of the venue",
                        "items": {
                            "$ref": "#/components/schemas/Asset"
                        },
                        "type": "array"
                    },
                    "links": {
                        "default": [],
                        "description": "Links to the venue's own site and other resources",
                        "items": {
                            "$ref": "#/components/schemas/Link"
                        },
                        "type": "array"
                    },
                    "shows": {
                        "default": [],
                        "description": "Shows that ran at the venue",
                        "items": {
                            "$ref": "#/components/schemas/ShowList"
                        },
                        "type": "array"
                    },
                    "content": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "The venue's description, in HTML"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "showCount",
                    "hasRecord",
                    "sentinel"
                ],
                "title": "VenueDetail",
                "type": "object"
            },
            "VenueList": {
                "description": "A venue as the index of venues gives it.",
                "properties": {
                    "id": {
                        "description": "ID of the venue, slugified from the authored venue name",
                        "examples": [
                            "new-theatre"
                        ],
                        "type": "string"
                    },
                    "name": {
                        "description": "Name of the venue",
                        "examples": [
                            "New Theatre"
                        ],
                        "type": "string"
                    },
                    "showCount": {
                        "description": "Number of shows at the venue",
                        "examples": [
                            42
                        ],
                        "type": "integer"
                    },
                    "group": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Name of the group the venue belongs to, where shows give one, for grouping venues such as Edinburgh's C venues",
                        "examples": [
                            "C venues"
                        ]
                    },
                    "hasRecord": {
                        "description": "Whether the venue is documented in the archive; venues only referenced by shows are stubs, carrying no details beyond name and shows",
                        "examples": [
                            true
                        ],
                        "type": "boolean"
                    },
                    "sentinel": {
                        "description": "Whether the venue stands in for the absence of a venue, such as an unknown venue or an online performance",
                        "examples": [
                            false
                        ],
                        "type": "boolean"
                    },
                    "built": {
                        "anyOf": [
                            {
                                "type": "integer"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Year the venue was built",
                        "examples": [
                            1965
                        ]
                    },
                    "location": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Location"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "Where the venue is, where it is known"
                    },
                    "city": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "default": null,
                        "description": "City the venue is in",
                        "examples": [
                            "Nottingham"
                        ]
                    }
                },
                "required": [
                    "id",
                    "name",
                    "showCount",
                    "hasRecord",
                    "sentinel"
                ],
                "title": "VenueList",
                "type": "object"
            },
            "VenueRef": {
                "description": "A venue a show ran at.",
                "properties": {
                    "id": {
                        "description": "ID of the venue, slugified from the authored venue name",
                        "examples": [
                            "new-theatre"
                        ],
                        "type": "string"
                    },
                    "name": {
                        "description": "Name of the venue as authored on the show",
                        "examples": [
                            "New Theatre"
                        ],
                        "type": "string"
                    }
                },
                "required": [
                    "id",
                    "name"
                ],
                "title": "VenueRef",
                "type": "object"
            },
            "YearDetail": {
                "description": "Everything the archive holds about an academic year.",
                "examples": [
                    {
                        "commendations": [
                            {
                                "hasBio": false,
                                "id": "holly_howell",
                                "isPerson": true,
                                "title": "Holly Howell"
                            }
                        ],
                        "committee": [
                            {
                                "person": {
                                    "hasBio": true,
                                    "headshot": {
                                        "height": 800,
                                        "id": "qDEF456",
                                        "width": 800
                                    },
                                    "id": "charlie_carey",
                                    "isPerson": true,
                                    "title": "Charlie Carey"
                                },
                                "role": "President"
                            },
                            {
                                "person": {
                                    "hasBio": true,
                                    "id": "laura_denison",
                                    "isPerson": true,
                                    "title": "Laura Denison"
                                },
                                "role": "Treasurer"
                            }
                        ],
                        "decade": 2020,
                        "fellows": [
                            {
                                "hasBio": true,
                                "id": "ben_adeniji",
                                "isPerson": true,
                                "title": "Ben Adeniji"
                            }
                        ],
                        "gradYear": 2025,
                        "id": "2024-25",
                        "showCount": 24,
                        "shows": [
                            {
                                "dateEnd": "2024-11-16",
                                "dateStart": "2024-11-13",
                                "devised": false,
                                "id": "2024-25/macbeth",
                                "playwright": {
                                    "descriptor": "by William Shakespeare",
                                    "id": "william_shakespeare",
                                    "name": "William Shakespeare",
                                    "studentWritten": false,
                                    "type": "playwright"
                                },
                                "playwrightDescriptor": "by William Shakespeare",
                                "primaryImage": {
                                    "height": 1200,
                                    "id": "qABC123",
                                    "width": 1600
                                },
                                "season": "In House",
                                "seasonId": "in-house",
                                "title": "Macbeth",
                                "venue": {
                                    "id": "nottingham-new-theatre",
                                    "name": "Nottingham New Theatre"
                                },
                                "year": 2024,
                                "yearId": "2024-25"
                            }
                        ],
                        "startYear": 2024,
                        "title": "2024/25"
                    }
                ],
                "properties": {
                    "id": {
                        "description": "ID of the academic year, in YYYY-YY form",
                        "examples": [
                            "2024-25"
                        ],
                        "type": "string"
                    },
                    "title": {
                        "description": "Title of the academic year",
                        "examples": [
                            "2024-25"
                        ],
                        "type": "string"
                    },
                    "startYear": {
                        "description": "Calendar year the academic year starts in",
                        "examples": [
                            2024
                        ],
                        "type": "integer"
                    },
                    "gradYear": {
                        "description": "Calendar year students of this academic year graduate in",
                        "examples": [
                            2025
                        ],
                        "type": "integer"
                    },
                    "decade": {
                        "description": "Calendar year the start year's decade begins in",
                        "examples": [
                            2020
                        ],
                        "type": "integer"
                    },
                    "showCount": {
                        "description": "Number of shows in the academic year",
                        "examples": [
                            42
                        ],
                        "type": "integer"
                    },
                    "shows": {
                        "default": [],
                        "description": "Shows in the academic year",
                        "items": {
                            "$ref": "#/components/schemas/ShowList"
                        },
                        "type": "array"
                    },
                    "committee": {
                        "default": [],
                        "description": "Who sat on the committee in the academic year",
                        "items": {
                            "$ref": "#/components/schemas/PersonCredit"
                        },
                        "type": "array"
                    },
                    "fellows": {
                        "default": [],
                        "description": "People awarded a Fellowship, by the year they graduated in",
                        "items": {
                            "$ref": "#/components/schemas/PersonRef"
                        },
                        "type": "array"
                    },
                    "commendations": {
                        "default": [],
                        "description": "People awarded a Commendation, by the year they graduated in",
                        "items": {
                            "$ref": "#/components/schemas/PersonRef"
                        },
                        "type": "array"
                    }
                },
                "required": [
                    "id",
                    "title",
                    "startYear",
                    "gradYear",
                    "decade",
                    "showCount"
                ],
                "title": "YearDetail",
                "type": "object"
            },
            "YearList": {
                "description": "An academic year as the index of years gives it.",
                "properties": {
                    "id": {
                        "description": "ID of the academic year, in YYYY-YY form",
                        "examples": [
                            "2024-25"
                        ],
                        "type": "string"
                    },
                    "title": {
                        "description": "Title of the academic year",
                        "examples": [
                            "2024-25"
                        ],
                        "type": "string"
                    },
                    "startYear": {
                        "description": "Calendar year the academic year starts in",
                        "examples": [
                            2024
                        ],
                        "type": "integer"
                    },
                    "gradYear": {
                        "description": "Calendar year students of this academic year graduate in",
                        "examples": [
                            2025
                        ],
                        "type": "integer"
                    },
                    "decade": {
                        "description": "Calendar year the start year's decade begins in",
                        "examples": [
                            2020
                        ],
                        "type": "integer"
                    },
                    "showCount": {
                        "description": "Number of shows in the academic year",
                        "examples": [
                            42
                        ],
                        "type": "integer"
                    }
                },
                "required": [
                    "id",
                    "title",
                    "startYear",
                    "gradYear",
                    "decade",
                    "showCount"
                ],
                "title": "YearList",
                "type": "object"
            },
            "YearListCollection": {
                "description": "Every academic year the archive covers, earliest first.",
                "items": {
                    "$ref": "#/components/schemas/YearList"
                },
                "title": "YearListCollection",
                "type": "array"
            },
            "YearRef": {
                "description": "An academic year, as every year reference gives it.",
                "properties": {
                    "id": {
                        "description": "ID of the academic year, in YYYY-YY form",
                        "examples": [
                            "2024-25"
                        ],
                        "type": "string"
                    },
                    "title": {
                        "description": "Title of the academic year",
                        "examples": [
                            "2024-25"
                        ],
                        "type": "string"
                    },
                    "startYear": {
                        "description": "Calendar year the academic year starts in",
                        "examples": [
                            2024
                        ],
                        "type": "integer"
                    },
                    "gradYear": {
                        "description": "Calendar year students of this academic year graduate in",
                        "examples": [
                            2025
                        ],
                        "type": "integer"
                    },
                    "decade": {
                        "description": "Calendar year the start year's decade begins in",
                        "examples": [
                            2020
                        ],
                        "type": "integer"
                    }
                },
                "required": [
                    "id",
                    "title",
                    "startYear",
                    "gradYear",
                    "decade"
                ],
                "title": "YearRef",
                "type": "object"
            }
        }
    }
}