{
    "openapi": "3.1.2",
    "info": {
        "title": "Riddim-ID API",
        "version": "1",
        "description": "## Introduction\n\nOpen, read-only data from [riddim-id.com](https:\/\/riddim-id.com): Jamaican riddims and the tunes recorded on them.\n\n```bash\ncurl https:\/\/api.riddim-id.com\/v1\/riddims\/18\n```\n\n- **Ids** are the numbers in riddim-id.com URLs. Don't know one? Search: `\/v1\/search?q=sleng+teng`.\n- **One object** comes as `{ \"data\": {...} }`, **a list** as `{ \"data\": [...], \"links\": {...}, \"meta\": {...} }`.\n- **Related items** are summaries: `{ \"id\", \"name\", \"url\", \"api_url\" }`. `url` is the riddim-id.com page, `api_url` the full object here.\n- **Limits:** 1,200 requests per minute and 200,000 per day, per IP, reported in `X-RateLimit-*` headers. Responses are cacheable and carry an `ETag`.\n\n### For AI assistants\n\n- **MCP server:** `https:\/\/api.riddim-id.com\/mcp` (Streamable HTTP, no auth). Claude Code: `claude mcp add --transport http riddim-id https:\/\/api.riddim-id.com\/mcp`\n- **[llms.txt](\/llms.txt)**: the whole API on one short page.\n- Every riddim has a `summary`: one plain sentence with its key facts.\n\n\n## Riddims\n\nA riddim is the instrumental rhythm track that reggae, dancehall and soca singers record over. The riddim endpoints work like the site: the list, a riddim's page, and the table of tunes on it.\n\n**Find a riddim**: most-recorded first, or filtered.\n\n```bash\ncurl \"https:\/\/api.riddim-id.com\/v1\/riddims?year_from=1980&year_to=1989&producer_id=595\"\n```\n\n**Get one**: names, year, producers, original tune, versions, tune count, `summary`.\n\n```bash\ncurl https:\/\/api.riddim-id.com\/v1\/riddims\/18\n```\n\n**The tunes on it**: the original first, then by year. Add `versions=include` for the tunes on its versions too.\n\n```bash\ncurl \"https:\/\/api.riddim-id.com\/v1\/riddims\/18\/tunes?versions=include&sort=year\"\n```\n\n\n## Pagination\n\nLists return 100 items per page. For the next page, request `links.next`; when it is `null` you have everything. Riddim lists also give `meta.total`, the number of matches.\n\n```json\n{\n  \"data\": [ ... ],\n  \"links\": { \"next\": \"https:\/\/api.riddim-id.com\/v1\/riddims?cursor=eyJzIjoiLXR1bmVzIi...\" },\n  \"meta\": { \"total\": 1717, \"per_page\": 100, \"next_cursor\": \"eyJzIjoiLXR1bmVzIi...\" }\n}\n```\n\n**Notes:**\n\n- Pages only go forward; there are no page numbers.\n- A cursor belongs to its `sort` and filters. Change those and start again without a cursor.\n- Each endpoint lists its `sort` values. The first is the default; `-` means descending.\n\n\n## Errors\n\nErrors come back as `application\/problem+json`:\n\n```json\n{\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"No riddim with id 424242.\",\n  \"code\": \"not_found\",\n  \"request_id\": \"01JAQ6ZK3Q6H5R4N8W0X1Y2Z3A\"\n}\n```\n\nUse `code` in your code; `detail` is for people. Include `request_id` when you report a problem.\n\n| `code` | Status | Meaning |\n|---|---|---|\n| `validation_failed` | 422 | Bad query parameter; `errors` says which |\n| `not_found` | 404 | No such id or path |\n| `person_not_artist`, `person_not_producer`, `person_not_engineer` | 404 | The person exists, but not in that role |\n| `album_is_dub` | 404 | A dub album asked for under \/v1\/albums; use \/v1\/dub-albums |\n| `album_not_dub` | 404 | A series album asked for under \/v1\/dub-albums; use \/v1\/albums |\n| `rate_limited` | 429 | Wait `retry_after` seconds |\n| `method_not_allowed` | 405 | Only `GET` and `HEAD` are allowed |\n| `internal_error` | 500 | Our fault; please report it |\n"
    },
    "servers": [
        {
            "url": "https:\/\/api.riddim-id.com\/v1",
            "description": "Production"
        }
    ],
    "tags": [
        {
            "name": "Riddims"
        },
        {
            "name": "Tunes"
        },
        {
            "name": "Artists"
        },
        {
            "name": "Producers"
        },
        {
            "name": "Engineers"
        },
        {
            "name": "Labels"
        },
        {
            "name": "Series"
        },
        {
            "name": "Albums"
        },
        {
            "name": "Dub albums"
        },
        {
            "name": "Search"
        }
    ],
    "paths": {
        "\/riddims": {
            "get": {
                "operationId": "riddims.index",
                "description": "The riddim list on riddim-id.com\/riddims: most-recorded first, filterable\nby name, year range and producer; `versions=include` adds the versions of\nevery match. `meta.total` says how many match.",
                "summary": "List riddims",
                "tags": [
                    "Riddims"
                ],
                "parameters": [
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Sort order: `-tunes` (default: most-recorded first), `name`, `year`, `-year` (newest first).",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "-tunes",
                                "name",
                                "year",
                                "-year"
                            ]
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "description": "`meta.next_cursor` from the previous page. Easier: follow `links.next`.",
                        "schema": {
                            "type": "string",
                            "maxLength": 2000
                        }
                    },
                    {
                        "name": "q",
                        "in": "query",
                        "description": "Part of the name or of an alternate name, like the filter box on riddim-id.com. Use \/v1\/search for typo-tolerant search.",
                        "schema": {
                            "type": "string",
                            "maxLength": 100
                        }
                    },
                    {
                        "name": "year",
                        "in": "query",
                        "description": "Exact year of the original cut.",
                        "schema": {
                            "type": "integer",
                            "minimum": 1950,
                            "maximum": 2100
                        }
                    },
                    {
                        "name": "year_from",
                        "in": "query",
                        "description": "Earliest year, inclusive.",
                        "schema": {
                            "type": "integer",
                            "minimum": 1950,
                            "maximum": 2100
                        }
                    },
                    {
                        "name": "year_to",
                        "in": "query",
                        "description": "Latest year, inclusive.",
                        "schema": {
                            "type": "integer",
                            "minimum": 1950,
                            "maximum": 2100
                        }
                    },
                    {
                        "name": "producer_id",
                        "in": "query",
                        "description": "Only riddims produced by this person, e.g. `595` (King Jammy).",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    },
                    {
                        "name": "versions",
                        "in": "query",
                        "description": "`include`: also list the versions (re-licks) of every riddim that matches. One level down, never up: a version that matches on its own stays just that version.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "include"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`RiddimCollection`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#\/components\/schemas\/RiddimCollection"
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "How many rows match the filters across all pages, like the site's \"Showing 1 to 100 of 1,717 entries\". Null on lists that do not count."
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "next_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "total",
                                                "per_page",
                                                "next_cursor"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ProblemValidationException"
                    }
                }
            }
        },
        "\/riddims\/{id}": {
            "get": {
                "operationId": "riddims.show",
                "description": "Everything on a riddim's page: names, year, producers, the original\ntune(s), the riddim it is a version of and its own versions, and how many\ntunes it carries. Add `?include=tunes` for the first 100 tunes in the\nsite's order.",
                "summary": "Get a riddim",
                "tags": [
                    "Riddims"
                ],
                "parameters": [
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Comma-separated related collections to embed, e.g. `tunes`.",
                        "schema": {
                            "type": "string",
                            "maxLength": 200
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Riddim id, as in riddim-id.com\/riddims\/{id}\/... Find it with \/v1\/search.",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 18
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`RiddimResource`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#\/components\/schemas\/RiddimResource"
                                        },
                                        "original_tunes": {
                                            "type": "array",
                                            "items": {}
                                        },
                                        "tunes": {
                                            "type": "array",
                                            "items": {}
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "original_tunes",
                                        "tunes"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {}
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ProblemValidationException"
                    }
                }
            }
        },
        "\/riddims\/{id}\/tunes": {
            "get": {
                "operationId": "riddims.tunes",
                "description": "The tune table on a riddim's page: every tune on this riddim and its\nversions, in the site's order (the original first, then by year).\nFilter by text, artist, producer, label, year or original only;\n`versions=exclude` keeps just this exact riddim. `meta.total` says how\nmany match.",
                "summary": "List a riddim's tunes",
                "tags": [
                    "Riddims"
                ],
                "parameters": [
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Sort order: `site` (default: the original first, then by year, as on riddim-id.com), `title`, `artist`, `year`, `-year` (newest first).",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "site",
                                "title",
                                "artist",
                                "year",
                                "-year"
                            ]
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "description": "`meta.next_cursor` from the previous page. Easier: follow `links.next`.",
                        "schema": {
                            "type": "string",
                            "maxLength": 2000
                        }
                    },
                    {
                        "name": "q",
                        "in": "query",
                        "description": "Part of the tune title or an artist name.",
                        "schema": {
                            "type": "string",
                            "maxLength": 100
                        }
                    },
                    {
                        "name": "artist_id",
                        "in": "query",
                        "description": "Only tunes by this artist id.",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    },
                    {
                        "name": "producer_id",
                        "in": "query",
                        "description": "Only tunes produced by this person id.",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    },
                    {
                        "name": "label_id",
                        "in": "query",
                        "description": "Only tunes released on this label id.",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    },
                    {
                        "name": "year",
                        "in": "query",
                        "description": "Exact release year.",
                        "schema": {
                            "type": "integer",
                            "minimum": 1950,
                            "maximum": 2100
                        }
                    },
                    {
                        "name": "year_from",
                        "in": "query",
                        "description": "Earliest release year, inclusive.",
                        "schema": {
                            "type": "integer",
                            "minimum": 1950,
                            "maximum": 2100
                        }
                    },
                    {
                        "name": "year_to",
                        "in": "query",
                        "description": "Latest release year, inclusive.",
                        "schema": {
                            "type": "integer",
                            "minimum": 1950,
                            "maximum": 2100
                        }
                    },
                    {
                        "name": "original",
                        "in": "query",
                        "description": "`true` for only the original recording(s) the riddim is named after.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "true",
                                "false",
                                "1",
                                "0"
                            ]
                        }
                    },
                    {
                        "name": "versions",
                        "in": "query",
                        "description": "`include`: also the tunes on this riddim's versions (re-licks). One level down, never up: for a version it changes nothing.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "include"
                            ]
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Riddim id",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 18
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`TuneCollection`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#\/components\/schemas\/TuneCollection"
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "How many rows match the filters across all pages, like the site's \"Showing 1 to 100 of 1,717 entries\". Null on lists that do not count."
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "next_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "total",
                                                "per_page",
                                                "next_cursor"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {}
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ProblemValidationException"
                    }
                }
            }
        },
        "\/tunes": {
            "get": {
                "operationId": "tunes.index",
                "description": "Cursor-paginated, alphabetical by title unless sorted otherwise. Filter\nby riddim, artist, producer, label or year; combine freely.",
                "summary": "List tunes",
                "tags": [
                    "Tunes"
                ],
                "parameters": [
                    {
                        "name": "sort",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "title",
                                "year",
                                "-year"
                            ]
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "maxLength": 2000
                        }
                    },
                    {
                        "name": "riddim_id",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    },
                    {
                        "name": "artist_id",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    },
                    {
                        "name": "producer_id",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    },
                    {
                        "name": "label_id",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    },
                    {
                        "name": "year",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "minimum": 1950,
                            "maximum": 2100
                        }
                    },
                    {
                        "name": "year_from",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "minimum": 1950,
                            "maximum": 2100
                        }
                    },
                    {
                        "name": "year_to",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "minimum": 1950,
                            "maximum": 2100
                        }
                    },
                    {
                        "name": "original",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "true",
                                "false",
                                "1",
                                "0"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`TuneCollection`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#\/components\/schemas\/TuneCollection"
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "How many rows match the filters across all pages, like the site's \"Showing 1 to 100 of 1,717 entries\". Null on lists that do not count."
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "next_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "total",
                                                "per_page",
                                                "next_cursor"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ProblemValidationException"
                    }
                }
            }
        },
        "\/tunes\/{id}": {
            "get": {
                "operationId": "tunes.show",
                "description": "One recording with its artists, producers, engineers, riddim(s) and\nlabels. `?include=albums` adds the series albums and dub albums it is on.",
                "summary": "Get a tune",
                "tags": [
                    "Tunes"
                ],
                "parameters": [
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Comma-separated related collections to embed, e.g. `tunes`.",
                        "schema": {
                            "type": "string",
                            "maxLength": 200
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Tune id",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 759
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`TuneResource`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#\/components\/schemas\/TuneResource"
                                        },
                                        "albums": {
                                            "type": "array",
                                            "items": {}
                                        },
                                        "dub_albums": {
                                            "type": "array",
                                            "items": {}
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "albums",
                                        "dub_albums"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {}
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ProblemValidationException"
                    }
                }
            }
        },
        "\/artists": {
            "get": {
                "operationId": "artists.index",
                "description": "Most-recorded first, every artist riddim-id.com lists, aliases\nincluded.",
                "summary": "List artists",
                "tags": [
                    "Artists"
                ],
                "parameters": [
                    {
                        "name": "sort",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "-tunes",
                                "name"
                            ]
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "maxLength": 2000
                        }
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "person",
                                "group",
                                "band"
                            ]
                        }
                    },
                    {
                        "name": "country",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "minLength": 2,
                            "maxLength": 2
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`ArtistCollection`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#\/components\/schemas\/ArtistCollection"
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "How many rows match the filters across all pages, like the site's \"Showing 1 to 100 of 1,717 entries\". Null on lists that do not count."
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "next_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "total",
                                                "per_page",
                                                "next_cursor"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ProblemValidationException"
                    }
                }
            }
        },
        "\/artists\/{id}": {
            "get": {
                "operationId": "artists.show",
                "description": "404 with a hint when the id belongs to someone who is only a producer\nor engineer.",
                "summary": "Get an artist",
                "tags": [
                    "Artists"
                ],
                "parameters": [
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Comma-separated related collections to embed, e.g. `tunes`.",
                        "schema": {
                            "type": "string",
                            "maxLength": 200
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Person id, as in riddim-id.com\/artists\/{id}\/...",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 251
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`ArtistResource`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "$ref": "#\/components\/schemas\/ArtistResource"
                                                }
                                            },
                                            "required": [
                                                "data"
                                            ]
                                        },
                                        {
                                            "type": "object"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ProblemValidationException"
                    }
                }
            }
        },
        "\/artists\/{id}\/tunes": {
            "get": {
                "operationId": "artists.tunes",
                "description": "Every tune the artist is credited on, including shared credits. Most\nrecent first by default.",
                "summary": "List an artist's tunes",
                "tags": [
                    "Artists"
                ],
                "parameters": [
                    {
                        "name": "sort",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "site",
                                "title",
                                "year",
                                "-year"
                            ]
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "maxLength": 2000
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Person id",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 251
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`TuneCollection`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#\/components\/schemas\/TuneCollection"
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "How many rows match the filters across all pages, like the site's \"Showing 1 to 100 of 1,717 entries\". Null on lists that do not count."
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "next_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "total",
                                                "per_page",
                                                "next_cursor"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {}
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ProblemValidationException"
                    }
                }
            }
        },
        "\/producers": {
            "get": {
                "operationId": "producers.index",
                "description": "By number of tunes produced, most first.",
                "summary": "List producers",
                "tags": [
                    "Producers"
                ],
                "parameters": [
                    {
                        "name": "sort",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "-tunes",
                                "name"
                            ]
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "maxLength": 2000
                        }
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "person",
                                "group",
                                "band"
                            ]
                        }
                    },
                    {
                        "name": "country",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "minLength": 2,
                            "maxLength": 2
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`ProducerCollection`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#\/components\/schemas\/ProducerCollection"
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "How many rows match the filters across all pages, like the site's \"Showing 1 to 100 of 1,717 entries\". Null on lists that do not count."
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "next_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "total",
                                                "per_page",
                                                "next_cursor"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ProblemValidationException"
                    }
                }
            }
        },
        "\/producers\/{id}": {
            "get": {
                "operationId": "producers.show",
                "description": "Roles, aliases and counts; `?include=tunes` adds the first 100 tunes they produced.",
                "summary": "Get a producer",
                "tags": [
                    "Producers"
                ],
                "parameters": [
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Comma-separated related collections to embed, e.g. `tunes`.",
                        "schema": {
                            "type": "string",
                            "maxLength": 200
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Person id, as in riddim-id.com\/producers\/{id}\/...",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 595
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`ProducerResource`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "$ref": "#\/components\/schemas\/ProducerResource"
                                                }
                                            },
                                            "required": [
                                                "data"
                                            ]
                                        },
                                        {
                                            "type": "object"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ProblemValidationException"
                    }
                }
            }
        },
        "\/producers\/{id}\/tunes": {
            "get": {
                "operationId": "producers.tunes",
                "description": "Every tune this person is credited with producing, most recent first by default.",
                "summary": "List a producer's tunes",
                "tags": [
                    "Producers"
                ],
                "parameters": [
                    {
                        "name": "sort",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "site",
                                "title",
                                "year",
                                "-year"
                            ]
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "maxLength": 2000
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Person id",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 595
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`TuneCollection`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#\/components\/schemas\/TuneCollection"
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "How many rows match the filters across all pages, like the site's \"Showing 1 to 100 of 1,717 entries\". Null on lists that do not count."
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "next_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "total",
                                                "per_page",
                                                "next_cursor"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {}
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ProblemValidationException"
                    }
                }
            }
        },
        "\/producers\/{id}\/riddims": {
            "get": {
                "operationId": "producers.riddims",
                "description": "The rhythms this person is credited with producing (what\nriddim-id.com\/riddims\/producer\/{id} shows). Empty when they only\nproduced tunes on other people's riddims.",
                "summary": "List a producer's riddims",
                "tags": [
                    "Producers"
                ],
                "parameters": [
                    {
                        "name": "sort",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "-tunes",
                                "name",
                                "year",
                                "-year"
                            ]
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "maxLength": 2000
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Person id",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 595
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`RiddimCollection`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#\/components\/schemas\/RiddimCollection"
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "How many rows match the filters across all pages, like the site's \"Showing 1 to 100 of 1,717 entries\". Null on lists that do not count."
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "next_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "total",
                                                "per_page",
                                                "next_cursor"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {}
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ProblemValidationException"
                    }
                }
            }
        },
        "\/engineers": {
            "get": {
                "operationId": "engineers.index",
                "description": "Everyone riddim-id.com\/dub lists: most dub albums first, then by name.",
                "summary": "List engineers",
                "tags": [
                    "Engineers"
                ],
                "parameters": [
                    {
                        "name": "sort",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "-albums",
                                "name"
                            ]
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "maxLength": 2000
                        }
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "person",
                                "group",
                                "band"
                            ]
                        }
                    },
                    {
                        "name": "country",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "minLength": 2,
                            "maxLength": 2
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`EngineerCollection`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#\/components\/schemas\/EngineerCollection"
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "How many rows match the filters across all pages, like the site's \"Showing 1 to 100 of 1,717 entries\". Null on lists that do not count."
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "next_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "total",
                                                "per_page",
                                                "next_cursor"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ProblemValidationException"
                    }
                }
            }
        },
        "\/engineers\/{id}": {
            "get": {
                "operationId": "engineers.show",
                "description": "The person behind riddim-id.com\/dub\/{slug}, with their portrait and how\nmany dub albums they mixed.",
                "summary": "Get an engineer",
                "tags": [
                    "Engineers"
                ],
                "parameters": [
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Comma-separated related collections to embed, e.g. `tunes`.",
                        "schema": {
                            "type": "string",
                            "maxLength": 200
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Person id",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1046
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`EngineerResource`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "$ref": "#\/components\/schemas\/EngineerResource"
                                                }
                                            },
                                            "required": [
                                                "data"
                                            ]
                                        },
                                        {
                                            "type": "object"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ProblemValidationException"
                    }
                }
            }
        },
        "\/engineers\/{id}\/dub-albums": {
            "get": {
                "operationId": "engineers.dub-albums",
                "description": "The dub albums this engineer mixed, oldest first: what\nriddim-id.com\/dub\/{slug} shows.",
                "summary": "List an engineer's dub albums",
                "tags": [
                    "Engineers"
                ],
                "parameters": [
                    {
                        "name": "sort",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "site",
                                "title",
                                "year",
                                "-year"
                            ]
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "maxLength": 2000
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Person id",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1046
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`DubAlbumCollection`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#\/components\/schemas\/DubAlbumCollection"
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "How many rows match the filters across all pages, like the site's \"Showing 1 to 100 of 1,717 entries\". Null on lists that do not count."
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "next_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "total",
                                                "per_page",
                                                "next_cursor"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {}
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ProblemValidationException"
                    }
                }
            }
        },
        "\/labels": {
            "get": {
                "operationId": "labels.index",
                "description": "Most tunes first by default.",
                "summary": "List labels",
                "tags": [
                    "Labels"
                ],
                "parameters": [
                    {
                        "name": "sort",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "-tunes",
                                "name",
                                "founded",
                                "-founded"
                            ]
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "maxLength": 2000
                        }
                    },
                    {
                        "name": "founder_id",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    },
                    {
                        "name": "founded_from",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "minimum": 1900,
                            "maximum": 2100
                        }
                    },
                    {
                        "name": "founded_to",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "minimum": 1900,
                            "maximum": 2100
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`LabelCollection`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#\/components\/schemas\/LabelCollection"
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "How many rows match the filters across all pages, like the site's \"Showing 1 to 100 of 1,717 entries\". Null on lists that do not count."
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "next_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "total",
                                                "per_page",
                                                "next_cursor"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ProblemValidationException"
                    }
                }
            }
        },
        "\/labels\/{id}": {
            "get": {
                "operationId": "labels.show",
                "description": "Founders link to the labels-by-founder page; `?include=tunes` adds the first 100 tunes.",
                "summary": "Get a label",
                "tags": [
                    "Labels"
                ],
                "parameters": [
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Comma-separated related collections to embed, e.g. `tunes`.",
                        "schema": {
                            "type": "string",
                            "maxLength": 200
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Label id, as in riddim-id.com\/labels\/{id}\/...",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 34
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`LabelResource`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#\/components\/schemas\/LabelResource"
                                        },
                                        "tunes": {
                                            "type": "array",
                                            "items": {}
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "tunes"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {}
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ProblemValidationException"
                    }
                }
            }
        },
        "\/labels\/{id}\/tunes": {
            "get": {
                "operationId": "labels.tunes",
                "description": "Tunes whose first-credited label this is, as on the site's label page.",
                "summary": "List a label's tunes",
                "tags": [
                    "Labels"
                ],
                "parameters": [
                    {
                        "name": "sort",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "site",
                                "title",
                                "year",
                                "-year"
                            ]
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "maxLength": 2000
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Label id",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 34
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`TuneCollection`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#\/components\/schemas\/TuneCollection"
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "How many rows match the filters across all pages, like the site's \"Showing 1 to 100 of 1,717 entries\". Null on lists that do not count."
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "next_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "total",
                                                "per_page",
                                                "next_cursor"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {}
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ProblemValidationException"
                    }
                }
            }
        },
        "\/labels\/{id}\/albums": {
            "get": {
                "operationId": "labels.albums",
                "description": "Series albums released on this label, most recent first. For dub\nalbums use \/v1\/dub-albums?label_id={id}.",
                "summary": "List a label's albums",
                "tags": [
                    "Labels"
                ],
                "parameters": [
                    {
                        "name": "sort",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "site",
                                "title",
                                "year",
                                "-year"
                            ]
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "maxLength": 2000
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Label id",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 34
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`AlbumCollection`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#\/components\/schemas\/AlbumCollection"
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "How many rows match the filters across all pages, like the site's \"Showing 1 to 100 of 1,717 entries\". Null on lists that do not count."
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "next_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "total",
                                                "per_page",
                                                "next_cursor"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {}
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ProblemValidationException"
                    }
                }
            }
        },
        "\/series": {
            "get": {
                "operationId": "series.index",
                "description": "Every series on riddim-id.com\/series, alphabetical.",
                "summary": "List series",
                "tags": [
                    "Series"
                ],
                "parameters": [
                    {
                        "name": "sort",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "title",
                                "-albums"
                            ]
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "maxLength": 2000
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`SeriesCollection`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#\/components\/schemas\/SeriesCollection"
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "How many rows match the filters across all pages, like the site's \"Showing 1 to 100 of 1,717 entries\". Null on lists that do not count."
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "next_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "total",
                                                "per_page",
                                                "next_cursor"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ProblemValidationException"
                    }
                }
            }
        },
        "\/series\/{id}": {
            "get": {
                "operationId": "series.show",
                "description": "Includes every album in the series, in series order.",
                "summary": "Get a series",
                "tags": [
                    "Series"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Series id",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 2
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`SeriesResource`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#\/components\/schemas\/SeriesResource"
                                        },
                                        "albums": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "string"
                                                    },
                                                    "number": {
                                                        "type": "string"
                                                    },
                                                    "title": {
                                                        "type": "string"
                                                    },
                                                    "year": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "url": {
                                                        "type": "string"
                                                    },
                                                    "api_url": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "number",
                                                    "title",
                                                    "year",
                                                    "url",
                                                    "api_url"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "albums"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {}
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/albums": {
            "get": {
                "operationId": "albums.index",
                "description": "In series order by default: series, then album number. `meta.total`\nsays how many match.",
                "summary": "List albums",
                "tags": [
                    "Albums"
                ],
                "parameters": [
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Sort order: `series` (default: by series, then album number), `-year` (newest first), `year`, `title`.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "series",
                                "-year",
                                "year",
                                "title"
                            ]
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "description": "`meta.next_cursor` from the previous page. Easier: follow `links.next`.",
                        "schema": {
                            "type": "string",
                            "maxLength": 2000
                        }
                    },
                    {
                        "name": "series_id",
                        "in": "query",
                        "description": "Only albums in this series, e.g. `2` (Riddim Driven).",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    },
                    {
                        "name": "year",
                        "in": "query",
                        "description": "Exact release year.",
                        "schema": {
                            "type": "integer",
                            "minimum": 1950,
                            "maximum": 2100
                        }
                    },
                    {
                        "name": "year_from",
                        "in": "query",
                        "description": "Earliest release year, inclusive.",
                        "schema": {
                            "type": "integer",
                            "minimum": 1950,
                            "maximum": 2100
                        }
                    },
                    {
                        "name": "year_to",
                        "in": "query",
                        "description": "Latest release year, inclusive.",
                        "schema": {
                            "type": "integer",
                            "minimum": 1950,
                            "maximum": 2100
                        }
                    },
                    {
                        "name": "riddim_id",
                        "in": "query",
                        "description": "Only albums featuring this riddim.",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    },
                    {
                        "name": "producer_id",
                        "in": "query",
                        "description": "Only albums produced by this person.",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    },
                    {
                        "name": "label_id",
                        "in": "query",
                        "description": "Only albums released on this label.",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`AlbumCollection`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#\/components\/schemas\/AlbumCollection"
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "How many rows match the filters across all pages, like the site's \"Showing 1 to 100 of 1,717 entries\". Null on lists that do not count."
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "next_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "total",
                                                "per_page",
                                                "next_cursor"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ProblemValidationException"
                    }
                }
            }
        },
        "\/albums\/{id}": {
            "get": {
                "operationId": "albums.show",
                "description": "The tracklist is always included as summaries; `?include=tunes` expands\nevery track to a full tune object.",
                "summary": "Get an album",
                "tags": [
                    "Albums"
                ],
                "parameters": [
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Comma-separated related collections to embed, e.g. `tunes`.",
                        "schema": {
                            "type": "string",
                            "maxLength": 200
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Album id",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 136
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`AlbumResource`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "$ref": "#\/components\/schemas\/AlbumResource"
                                                }
                                            },
                                            "required": [
                                                "data"
                                            ]
                                        },
                                        {
                                            "type": "object"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ProblemValidationException"
                    }
                }
            }
        },
        "\/albums\/{id}\/tunes": {
            "get": {
                "operationId": "albums.tunes",
                "description": "Every track as a full tune, in album order, with its `position`.",
                "summary": "List an album's tunes",
                "tags": [
                    "Albums"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Album id",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 136
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/dub-albums": {
            "get": {
                "operationId": "dub-albums.index",
                "description": "Oldest first by default. `meta.total` says how many match.",
                "summary": "List dub albums",
                "tags": [
                    "Dub albums"
                ],
                "parameters": [
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Sort order: `year` (default: oldest first, as on an engineer's page), `-year` (newest first), `title`.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "year",
                                "-year",
                                "title"
                            ]
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "description": "`meta.next_cursor` from the previous page. Easier: follow `links.next`.",
                        "schema": {
                            "type": "string",
                            "maxLength": 2000
                        }
                    },
                    {
                        "name": "engineer_id",
                        "in": "query",
                        "description": "Only albums mixed by this engineer, e.g. `1046` (Scientist).",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    },
                    {
                        "name": "producer_id",
                        "in": "query",
                        "description": "Only albums produced by this person.",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    },
                    {
                        "name": "label_id",
                        "in": "query",
                        "description": "Only albums released on this label.",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    },
                    {
                        "name": "year",
                        "in": "query",
                        "description": "Exact release year.",
                        "schema": {
                            "type": "integer",
                            "minimum": 1950,
                            "maximum": 2100
                        }
                    },
                    {
                        "name": "year_from",
                        "in": "query",
                        "description": "Earliest release year, inclusive.",
                        "schema": {
                            "type": "integer",
                            "minimum": 1950,
                            "maximum": 2100
                        }
                    },
                    {
                        "name": "year_to",
                        "in": "query",
                        "description": "Latest release year, inclusive.",
                        "schema": {
                            "type": "integer",
                            "minimum": 1950,
                            "maximum": 2100
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`DubAlbumCollection`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#\/components\/schemas\/DubAlbumCollection"
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "How many rows match the filters across all pages, like the site's \"Showing 1 to 100 of 1,717 entries\". Null on lists that do not count."
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "next_cursor": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "total",
                                                "per_page",
                                                "next_cursor"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ProblemValidationException"
                    }
                }
            }
        },
        "\/dub-albums\/{id}": {
            "get": {
                "operationId": "dub-albums.show",
                "description": "The page riddim-id.com\/dub\/{slug} shows: year, engineers, producers,\nlabels, cover, and the dubs with their originals.",
                "summary": "Get a dub album",
                "tags": [
                    "Dub albums"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Dub album id",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 351
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`DubAlbumResource`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#\/components\/schemas\/DubAlbumResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {}
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/search": {
            "get": {
                "operationId": "search",
                "description": "Up to 50 hits across riddims, artists, producers, engineers and labels,\nwith a count per type. Each hit has the entity's id, its page on\nriddim-id.com and its `api_url` here.",
                "summary": "Search the catalogue",
                "tags": [
                    "Search"
                ],
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": true,
                        "description": "What to search for: a riddim, artist, producer, engineer or label name. Typos are tolerated.",
                        "schema": {
                            "type": "string",
                            "minLength": 2,
                            "maxLength": 100
                        }
                    },
                    {
                        "name": "types",
                        "in": "query",
                        "description": "Comma-separated subset of riddim,artist,producer,engineer,label. Default: all.",
                        "schema": {
                            "type": "string",
                            "maxLength": 60
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "Maximum hits, 1-50. Default 20.",
                        "schema": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 50
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "type": {
                                                        "type": "string"
                                                    },
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "url": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ]
                                                    },
                                                    "api_url": {
                                                        "type": "string"
                                                    },
                                                    "year": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ]
                                                    },
                                                    "is_version": {
                                                        "type": "boolean"
                                                    },
                                                    "version_of": {},
                                                    "is_alias": {
                                                        "type": "boolean"
                                                    },
                                                    "alias_of": {}
                                                },
                                                "required": [
                                                    "type",
                                                    "id",
                                                    "name",
                                                    "url",
                                                    "api_url",
                                                    "year",
                                                    "is_version",
                                                    "version_of",
                                                    "is_alias",
                                                    "alias_of"
                                                ]
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "query": {
                                                    "type": "string",
                                                    "description": "The query as searched."
                                                },
                                                "counts_by_type": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "query",
                                                "counts_by_type"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ProblemValidationException"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "AlbumCollection": {
                "type": "array",
                "items": {
                    "$ref": "#\/components\/schemas\/AlbumResource"
                },
                "title": "AlbumCollection"
            },
            "AlbumResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer",
                        "examples": [
                            136
                        ]
                    },
                    "title": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "examples": [
                            "Rice And Peas"
                        ]
                    },
                    "title_full": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "The title as the site shows it. @example \"Riddim Driven: Rice And Peas\""
                    },
                    "slug": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "examples": [
                            "rice-and-peas"
                        ]
                    },
                    "number": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "description": "Position in the series. @example 10"
                    },
                    "year": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "examples": [
                            2001
                        ]
                    },
                    "url": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "The album's page on riddim-id.com. @example \"https:\/\/riddim-id.com\/series\/riddim-driven\/10\/rice-and-peas\""
                    },
                    "api_url": {
                        "type": "string",
                        "examples": [
                            "https:\/\/api.riddim-id.com\/v1\/albums\/136"
                        ]
                    },
                    "series": {
                        "type": [
                            "object",
                            "null"
                        ],
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "title": {
                                "type": "string"
                            },
                            "url": {
                                "type": "string"
                            },
                            "api_url": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "id",
                            "title",
                            "url",
                            "api_url"
                        ]
                    },
                    "image": {
                        "type": [
                            "object",
                            "null"
                        ],
                        "description": "Cover art on the riddim-id CDN, 300x300.",
                        "properties": {
                            "jpg": {
                                "type": "string"
                            },
                            "webp": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "jpg",
                            "webp"
                        ]
                    },
                    "tracks": {
                        "type": "array",
                        "description": "The tracklist. `tune.api_url` gives the full tune.",
                        "items": {}
                    },
                    "riddims": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "labels": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "producers": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "counts": {
                        "type": "object",
                        "properties": {
                            "tracks": {
                                "type": "integer"
                            }
                        },
                        "required": [
                            "tracks"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "When riddim-admin first published this row. @format date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "When riddim-admin last regenerated this row. @format date-time"
                    },
                    "tunes": {
                        "type": "string",
                        "description": "Only with `?include=tunes`: every track as a full tune, in album order."
                    }
                },
                "required": [
                    "id",
                    "title",
                    "title_full",
                    "slug",
                    "number",
                    "year",
                    "url",
                    "api_url",
                    "series",
                    "image",
                    "tracks",
                    "riddims",
                    "labels",
                    "producers",
                    "counts",
                    "created_at",
                    "updated_at"
                ],
                "title": "AlbumResource"
            },
            "ArtistCollection": {
                "type": "array",
                "items": {
                    "$ref": "#\/components\/schemas\/ArtistResource"
                },
                "title": "ArtistCollection"
            },
            "ArtistResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "examples": [
                            "251"
                        ]
                    },
                    "name": {
                        "type": "string",
                        "examples": [
                            "Gregory Isaacs"
                        ]
                    },
                    "slug": {
                        "type": "string",
                        "examples": [
                            "gregory-isaacs"
                        ]
                    },
                    "url": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "The page on riddim-id.com for the role this resource represents. Null for an engineer without a dub album page."
                    },
                    "type": {
                        "type": "string",
                        "description": "person | group | band"
                    },
                    "real_name": {
                        "type": "string"
                    },
                    "nick_names": {
                        "type": "string",
                        "description": "Other names, as one comma-separated string."
                    },
                    "birth_date": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Birth date, YYYY-MM-DD; for a group or band its founding year only, YYYY, as riddim-id.com shows it. Null when unknown."
                    },
                    "birth_place": {
                        "type": "string"
                    },
                    "country_code": {
                        "type": "string",
                        "description": "ISO 3166-1 alpha-2. @example \"JM\""
                    },
                    "roles": {
                        "type": "object",
                        "description": "Which roles this person holds in the catalogue.",
                        "properties": {
                            "artist": {
                                "type": "boolean"
                            },
                            "producer": {
                                "type": "boolean"
                            },
                            "engineer": {
                                "type": "boolean"
                            },
                            "riddim_producer": {
                                "type": "boolean"
                            },
                            "label_founder": {
                                "type": "boolean"
                            }
                        },
                        "required": [
                            "artist",
                            "producer",
                            "engineer",
                            "riddim_producer",
                            "label_founder"
                        ]
                    },
                    "urls": {
                        "type": "object",
                        "description": "Every riddim-id.com page this person has; null where the role is not held.",
                        "properties": {
                            "artist": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "producer": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "engineer": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "riddim_producer": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "label_founder": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            }
                        },
                        "required": [
                            "artist",
                            "producer",
                            "engineer",
                            "riddim_producer",
                            "label_founder"
                        ]
                    },
                    "alias_of": {
                        "type": [
                            "object",
                            "null"
                        ],
                        "description": "When this record is an alias (stage name) of another person, that person.",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "name": {
                                "type": "string"
                            },
                            "url": {
                                "type": "string"
                            },
                            "api_url": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "id",
                            "name",
                            "url",
                            "api_url"
                        ]
                    },
                    "aliases": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "member_of": {
                        "type": "array",
                        "description": "Groups this person is a member of.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "members": {
                        "type": "array",
                        "description": "Members, when this record is a group.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "counts": {
                        "type": "object",
                        "properties": {
                            "tunes_as_artist": {
                                "type": "string"
                            },
                            "tunes_as_artist_including_aliases": {
                                "type": "string",
                                "description": "Including tunes credited to this person's aliases."
                            },
                            "tunes_as_producer": {
                                "type": "string"
                            },
                            "tunes_as_producer_including_aliases": {
                                "type": "string"
                            },
                            "dub_albums": {
                                "description": "Dub albums mixed, as the site's \/dub page counts them.",
                                "anyOf": [
                                    {
                                        "type": "string"
                                    },
                                    {
                                        "type": "integer",
                                        "enum": [
                                            0
                                        ]
                                    }
                                ]
                            },
                            "riddims_produced": {
                                "type": "string"
                            },
                            "labels_founded": {
                                "type": "string"
                            },
                            "aliases": {
                                "type": "string"
                            },
                            "members": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "tunes_as_artist",
                            "tunes_as_artist_including_aliases",
                            "tunes_as_producer",
                            "tunes_as_producer_including_aliases",
                            "dub_albums",
                            "riddims_produced",
                            "labels_founded",
                            "aliases",
                            "members"
                        ]
                    },
                    "image": {
                        "type": "object",
                        "description": "Portrait on the riddim-id CDN, on the engineer resource only.",
                        "properties": {
                            "jpg": {
                                "type": "string"
                            },
                            "webp": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "jpg",
                            "webp"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "When riddim-admin first published this row. @format date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "When riddim-admin last regenerated this row. @format date-time"
                    },
                    "tunes": {
                        "type": "string",
                        "description": "Only with `?include=tunes`: up to 100 tunes in this role."
                    }
                },
                "required": [
                    "id",
                    "name",
                    "slug",
                    "url",
                    "type",
                    "real_name",
                    "nick_names",
                    "birth_date",
                    "birth_place",
                    "country_code",
                    "roles",
                    "urls",
                    "alias_of",
                    "aliases",
                    "member_of",
                    "members",
                    "counts",
                    "created_at",
                    "updated_at"
                ],
                "title": "ArtistResource"
            },
            "DubAlbumCollection": {
                "type": "array",
                "items": {
                    "$ref": "#\/components\/schemas\/DubAlbumResource"
                },
                "title": "DubAlbumCollection"
            },
            "DubAlbumResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer",
                        "examples": [
                            351
                        ]
                    },
                    "title": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "examples": [
                            "Scientist Rids The World Of The Evil Curse Of The Vampires"
                        ]
                    },
                    "slug": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "examples": [
                            "scientist-rids-the-world-of-the-evil-curse-of-the-vampires"
                        ]
                    },
                    "year": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "examples": [
                            1981
                        ]
                    },
                    "url": {
                        "type": "string",
                        "description": "The album's page on riddim-id.com. @example \"https:\/\/riddim-id.com\/dub\/scientist-rids-the-world-of-the-evil-curse-of-the-vampires\""
                    },
                    "api_url": {
                        "type": "string",
                        "examples": [
                            "https:\/\/api.riddim-id.com\/v1\/dub-albums\/351"
                        ]
                    },
                    "image": {
                        "type": "object",
                        "description": "Cover art on the riddim-id CDN, 500x500.",
                        "properties": {
                            "jpg": {
                                "type": "string"
                            },
                            "webp": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "jpg",
                            "webp"
                        ]
                    },
                    "tracks": {
                        "type": "array",
                        "description": "The dubs, in album order, each with the original it was mixed from.",
                        "items": {
                            "type": "object",
                            "properties": {
                                "position": {
                                    "type": "integer"
                                },
                                "title": {
                                    "type": "string"
                                },
                                "artists": {
                                    "type": "string"
                                },
                                "riddim": {
                                    "type": [
                                        "object",
                                        "null"
                                    ],
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "url": {
                                            "type": "string"
                                        },
                                        "api_url": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "id",
                                        "name",
                                        "url",
                                        "api_url"
                                    ]
                                },
                                "tune": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "api_url": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "id",
                                        "api_url"
                                    ]
                                },
                                "original": {
                                    "type": [
                                        "object",
                                        "null"
                                    ],
                                    "properties": {
                                        "title": {
                                            "type": "string"
                                        },
                                        "artists": {
                                            "type": "string"
                                        },
                                        "riddim": {
                                            "type": [
                                                "object",
                                                "null"
                                            ],
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": "string"
                                                },
                                                "url": {
                                                    "type": "string"
                                                },
                                                "api_url": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "url",
                                                "api_url"
                                            ]
                                        },
                                        "tune": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "api_url": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "api_url"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "title",
                                        "artists",
                                        "riddim",
                                        "tune"
                                    ]
                                }
                            },
                            "required": [
                                "position",
                                "title",
                                "artists",
                                "riddim",
                                "tune",
                                "original"
                            ]
                        }
                    },
                    "engineers": {
                        "type": "array",
                        "description": "Who mixed the album. Links go to the engineer's page under \/dub.",
                        "items": {
                            "type": "object",
                            "properties": {
                                "id": {
                                    "type": "integer"
                                },
                                "name": {
                                    "type": "string"
                                },
                                "url": {
                                    "type": "string"
                                },
                                "api_url": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "id",
                                "name",
                                "url",
                                "api_url"
                            ]
                        }
                    },
                    "producers": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "labels": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "counts": {
                        "type": "object",
                        "properties": {
                            "tracks": {
                                "type": "integer",
                                "examples": [
                                    10
                                ]
                            }
                        },
                        "required": [
                            "tracks"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "When riddim-admin first published this row. @format date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "When riddim-admin last regenerated this row. @format date-time"
                    }
                },
                "required": [
                    "id",
                    "title",
                    "slug",
                    "year",
                    "url",
                    "api_url",
                    "image",
                    "tracks",
                    "engineers",
                    "producers",
                    "labels",
                    "counts",
                    "created_at",
                    "updated_at"
                ],
                "title": "DubAlbumResource"
            },
            "EngineerCollection": {
                "type": "array",
                "items": {
                    "$ref": "#\/components\/schemas\/EngineerResource"
                },
                "title": "EngineerCollection"
            },
            "EngineerResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "examples": [
                            "251"
                        ]
                    },
                    "name": {
                        "type": "string",
                        "examples": [
                            "Gregory Isaacs"
                        ]
                    },
                    "slug": {
                        "type": "string",
                        "examples": [
                            "gregory-isaacs"
                        ]
                    },
                    "url": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "The page on riddim-id.com for the role this resource represents. Null for an engineer without a dub album page."
                    },
                    "type": {
                        "type": "string",
                        "description": "person | group | band"
                    },
                    "real_name": {
                        "type": "string"
                    },
                    "nick_names": {
                        "type": "string",
                        "description": "Other names, as one comma-separated string."
                    },
                    "birth_date": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Birth date, YYYY-MM-DD; for a group or band its founding year only, YYYY, as riddim-id.com shows it. Null when unknown."
                    },
                    "birth_place": {
                        "type": "string"
                    },
                    "country_code": {
                        "type": "string",
                        "description": "ISO 3166-1 alpha-2. @example \"JM\""
                    },
                    "roles": {
                        "type": "object",
                        "description": "Which roles this person holds in the catalogue.",
                        "properties": {
                            "artist": {
                                "type": "boolean"
                            },
                            "producer": {
                                "type": "boolean"
                            },
                            "engineer": {
                                "type": "boolean"
                            },
                            "riddim_producer": {
                                "type": "boolean"
                            },
                            "label_founder": {
                                "type": "boolean"
                            }
                        },
                        "required": [
                            "artist",
                            "producer",
                            "engineer",
                            "riddim_producer",
                            "label_founder"
                        ]
                    },
                    "urls": {
                        "type": "object",
                        "description": "Every riddim-id.com page this person has; null where the role is not held.",
                        "properties": {
                            "artist": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "producer": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "engineer": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "riddim_producer": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "label_founder": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            }
                        },
                        "required": [
                            "artist",
                            "producer",
                            "engineer",
                            "riddim_producer",
                            "label_founder"
                        ]
                    },
                    "alias_of": {
                        "type": [
                            "object",
                            "null"
                        ],
                        "description": "When this record is an alias (stage name) of another person, that person.",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "name": {
                                "type": "string"
                            },
                            "url": {
                                "type": "string"
                            },
                            "api_url": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "id",
                            "name",
                            "url",
                            "api_url"
                        ]
                    },
                    "aliases": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "member_of": {
                        "type": "array",
                        "description": "Groups this person is a member of.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "members": {
                        "type": "array",
                        "description": "Members, when this record is a group.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "counts": {
                        "type": "object",
                        "properties": {
                            "tunes_as_artist": {
                                "type": "string"
                            },
                            "tunes_as_artist_including_aliases": {
                                "type": "string",
                                "description": "Including tunes credited to this person's aliases."
                            },
                            "tunes_as_producer": {
                                "type": "string"
                            },
                            "tunes_as_producer_including_aliases": {
                                "type": "string"
                            },
                            "dub_albums": {
                                "description": "Dub albums mixed, as the site's \/dub page counts them.",
                                "anyOf": [
                                    {
                                        "type": "string"
                                    },
                                    {
                                        "type": "integer",
                                        "enum": [
                                            0
                                        ]
                                    }
                                ]
                            },
                            "riddims_produced": {
                                "type": "string"
                            },
                            "labels_founded": {
                                "type": "string"
                            },
                            "aliases": {
                                "type": "string"
                            },
                            "members": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "tunes_as_artist",
                            "tunes_as_artist_including_aliases",
                            "tunes_as_producer",
                            "tunes_as_producer_including_aliases",
                            "dub_albums",
                            "riddims_produced",
                            "labels_founded",
                            "aliases",
                            "members"
                        ]
                    },
                    "image": {
                        "type": "object",
                        "description": "Portrait on the riddim-id CDN, on the engineer resource only.",
                        "properties": {
                            "jpg": {
                                "type": "string"
                            },
                            "webp": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "jpg",
                            "webp"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "When riddim-admin first published this row. @format date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "When riddim-admin last regenerated this row. @format date-time"
                    },
                    "tunes": {
                        "type": "string",
                        "description": "Only with `?include=tunes`: up to 100 tunes in this role."
                    }
                },
                "required": [
                    "id",
                    "name",
                    "slug",
                    "url",
                    "type",
                    "real_name",
                    "nick_names",
                    "birth_date",
                    "birth_place",
                    "country_code",
                    "roles",
                    "urls",
                    "alias_of",
                    "aliases",
                    "member_of",
                    "members",
                    "counts",
                    "created_at",
                    "updated_at"
                ],
                "title": "EngineerResource"
            },
            "LabelCollection": {
                "type": "array",
                "items": {
                    "$ref": "#\/components\/schemas\/LabelResource"
                },
                "title": "LabelCollection"
            },
            "LabelResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer",
                        "examples": [
                            34
                        ]
                    },
                    "name": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "examples": [
                            "Studio One"
                        ]
                    },
                    "slug": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "examples": [
                            "studio-one"
                        ]
                    },
                    "url": {
                        "type": "string",
                        "examples": [
                            "https:\/\/riddim-id.com\/labels\/34\/studio-one"
                        ]
                    },
                    "full_name": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "The long form of the name where it differs."
                    },
                    "founded_year": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "examples": [
                            1954
                        ]
                    },
                    "founded_place": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "examples": [
                            "Jamaica, Kingston"
                        ]
                    },
                    "founders": {
                        "type": "array",
                        "description": "Who founded the label. Links go to the labels-by-founder page.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "counts": {
                        "type": "object",
                        "properties": {
                            "tunes": {
                                "type": "integer",
                                "examples": [
                                    1098
                                ]
                            },
                            "founders": {
                                "type": "integer"
                            }
                        },
                        "required": [
                            "tunes",
                            "founders"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "When riddim-admin first published this row. @format date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "When riddim-admin last regenerated this row. @format date-time"
                    },
                    "tunes": {
                        "type": "string",
                        "description": "Only with `?include=tunes`: up to 100 tunes on the label."
                    }
                },
                "required": [
                    "id",
                    "name",
                    "slug",
                    "url",
                    "full_name",
                    "founded_year",
                    "founded_place",
                    "founders",
                    "counts",
                    "created_at",
                    "updated_at"
                ],
                "title": "LabelResource"
            },
            "ProducerCollection": {
                "type": "array",
                "items": {
                    "$ref": "#\/components\/schemas\/ProducerResource"
                },
                "title": "ProducerCollection"
            },
            "ProducerResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "examples": [
                            "251"
                        ]
                    },
                    "name": {
                        "type": "string",
                        "examples": [
                            "Gregory Isaacs"
                        ]
                    },
                    "slug": {
                        "type": "string",
                        "examples": [
                            "gregory-isaacs"
                        ]
                    },
                    "url": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "The page on riddim-id.com for the role this resource represents. Null for an engineer without a dub album page."
                    },
                    "type": {
                        "type": "string",
                        "description": "person | group | band"
                    },
                    "real_name": {
                        "type": "string"
                    },
                    "nick_names": {
                        "type": "string",
                        "description": "Other names, as one comma-separated string."
                    },
                    "birth_date": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Birth date, YYYY-MM-DD; for a group or band its founding year only, YYYY, as riddim-id.com shows it. Null when unknown."
                    },
                    "birth_place": {
                        "type": "string"
                    },
                    "country_code": {
                        "type": "string",
                        "description": "ISO 3166-1 alpha-2. @example \"JM\""
                    },
                    "roles": {
                        "type": "object",
                        "description": "Which roles this person holds in the catalogue.",
                        "properties": {
                            "artist": {
                                "type": "boolean"
                            },
                            "producer": {
                                "type": "boolean"
                            },
                            "engineer": {
                                "type": "boolean"
                            },
                            "riddim_producer": {
                                "type": "boolean"
                            },
                            "label_founder": {
                                "type": "boolean"
                            }
                        },
                        "required": [
                            "artist",
                            "producer",
                            "engineer",
                            "riddim_producer",
                            "label_founder"
                        ]
                    },
                    "urls": {
                        "type": "object",
                        "description": "Every riddim-id.com page this person has; null where the role is not held.",
                        "properties": {
                            "artist": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "producer": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "engineer": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "riddim_producer": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "label_founder": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            }
                        },
                        "required": [
                            "artist",
                            "producer",
                            "engineer",
                            "riddim_producer",
                            "label_founder"
                        ]
                    },
                    "alias_of": {
                        "type": [
                            "object",
                            "null"
                        ],
                        "description": "When this record is an alias (stage name) of another person, that person.",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "name": {
                                "type": "string"
                            },
                            "url": {
                                "type": "string"
                            },
                            "api_url": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "id",
                            "name",
                            "url",
                            "api_url"
                        ]
                    },
                    "aliases": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "member_of": {
                        "type": "array",
                        "description": "Groups this person is a member of.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "members": {
                        "type": "array",
                        "description": "Members, when this record is a group.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "counts": {
                        "type": "object",
                        "properties": {
                            "tunes_as_artist": {
                                "type": "string"
                            },
                            "tunes_as_artist_including_aliases": {
                                "type": "string",
                                "description": "Including tunes credited to this person's aliases."
                            },
                            "tunes_as_producer": {
                                "type": "string"
                            },
                            "tunes_as_producer_including_aliases": {
                                "type": "string"
                            },
                            "dub_albums": {
                                "description": "Dub albums mixed, as the site's \/dub page counts them.",
                                "anyOf": [
                                    {
                                        "type": "string"
                                    },
                                    {
                                        "type": "integer",
                                        "enum": [
                                            0
                                        ]
                                    }
                                ]
                            },
                            "riddims_produced": {
                                "type": "string"
                            },
                            "labels_founded": {
                                "type": "string"
                            },
                            "aliases": {
                                "type": "string"
                            },
                            "members": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "tunes_as_artist",
                            "tunes_as_artist_including_aliases",
                            "tunes_as_producer",
                            "tunes_as_producer_including_aliases",
                            "dub_albums",
                            "riddims_produced",
                            "labels_founded",
                            "aliases",
                            "members"
                        ]
                    },
                    "image": {
                        "type": "object",
                        "description": "Portrait on the riddim-id CDN, on the engineer resource only.",
                        "properties": {
                            "jpg": {
                                "type": "string"
                            },
                            "webp": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "jpg",
                            "webp"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "When riddim-admin first published this row. @format date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "When riddim-admin last regenerated this row. @format date-time"
                    },
                    "tunes": {
                        "type": "string",
                        "description": "Only with `?include=tunes`: up to 100 tunes in this role."
                    }
                },
                "required": [
                    "id",
                    "name",
                    "slug",
                    "url",
                    "type",
                    "real_name",
                    "nick_names",
                    "birth_date",
                    "birth_place",
                    "country_code",
                    "roles",
                    "urls",
                    "alias_of",
                    "aliases",
                    "member_of",
                    "members",
                    "counts",
                    "created_at",
                    "updated_at"
                ],
                "title": "ProducerResource"
            },
            "RiddimCollection": {
                "type": "array",
                "items": {
                    "$ref": "#\/components\/schemas\/RiddimResource"
                },
                "title": "RiddimCollection"
            },
            "RiddimResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer",
                        "description": "The id used in riddim-id.com URLs. Stable for as long as the riddim exists. @example 18"
                    },
                    "name": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "examples": [
                            "Sleng Teng"
                        ]
                    },
                    "slug": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "examples": [
                            "sleng-teng"
                        ]
                    },
                    "url": {
                        "type": "string",
                        "description": "The riddim's page on riddim-id.com. @example \"https:\/\/riddim-id.com\/riddims\/18\/sleng-teng\""
                    },
                    "api_url": {
                        "type": "string",
                        "description": "The riddim's endpoint in this API. @example \"https:\/\/api.riddim-id.com\/v1\/riddims\/18\""
                    },
                    "summary": {
                        "type": "string",
                        "description": "One plain sentence with the key facts, for quick display or an AI answer. @example \"Sleng Teng Riddim (1985), produced by Wayne Smith, Noel Davey and King Jammy. 619 tunes, including those on its 26 versions.\""
                    },
                    "alternate_names": {
                        "type": "array",
                        "description": "Other names the same rhythm is known by. @example [\"Under Mi Sleng Teng\"]",
                        "items": {}
                    },
                    "year": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "description": "Year of the original cut; null when unknown. @example 1967"
                    },
                    "is_version": {
                        "type": "boolean",
                        "description": "True when this riddim is a re-lick (version) of another; see version_of."
                    },
                    "version_of": {
                        "type": [
                            "object",
                            "null"
                        ],
                        "description": "The riddim this one is a version of, or null.",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "name": {
                                "type": "string"
                            },
                            "url": {
                                "type": "string"
                            },
                            "api_url": {
                                "type": "string"
                            },
                            "year": {
                                "type": [
                                    "integer",
                                    "null"
                                ]
                            }
                        },
                        "required": [
                            "id",
                            "name",
                            "url",
                            "api_url",
                            "year"
                        ]
                    },
                    "versions": {
                        "type": "array",
                        "description": "Versions (re-licks) of this riddim, with their year where known.",
                        "items": {
                            "type": "object",
                            "properties": {
                                "id": {
                                    "type": "integer"
                                },
                                "name": {
                                    "type": "string"
                                },
                                "url": {
                                    "type": "string"
                                },
                                "api_url": {
                                    "type": "string"
                                },
                                "year": {
                                    "type": [
                                        "integer",
                                        "null"
                                    ]
                                }
                            },
                            "required": [
                                "id",
                                "name",
                                "url",
                                "api_url",
                                "year"
                            ]
                        }
                    },
                    "producers": {
                        "type": "array",
                        "description": "Who produced the rhythm. Links go to the riddims-by-producer page.",
                        "items": {
                            "type": "object",
                            "properties": {
                                "id": {
                                    "type": "integer"
                                },
                                "name": {
                                    "type": "string"
                                },
                                "url": {
                                    "type": "string"
                                },
                                "api_url": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "id",
                                "name",
                                "url",
                                "api_url"
                            ]
                        }
                    },
                    "counts": {
                        "type": "object",
                        "properties": {
                            "tunes": {
                                "type": "integer",
                                "description": "Tunes on this exact riddim. @example 120"
                            },
                            "tunes_including_versions": {
                                "type": "integer",
                                "description": "Tunes on this riddim plus all its versions. @example 140"
                            },
                            "versions": {
                                "type": "integer",
                                "examples": [
                                    1
                                ]
                            },
                            "producers": {
                                "type": "integer",
                                "examples": [
                                    1
                                ]
                            }
                        },
                        "required": [
                            "tunes",
                            "tunes_including_versions",
                            "versions",
                            "producers"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "When riddim-admin first published this row. @format date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "When riddim-admin last regenerated this row. @format date-time"
                    },
                    "original_tunes": {
                        "type": "string",
                        "description": "The recording(s) the riddim is named after, on the single riddim endpoint only. Empty when not known."
                    },
                    "tunes": {
                        "type": "string",
                        "description": "Up to 100 tunes, only with `?include=tunes`. Walk \/v1\/riddims\/{id}\/tunes for all of them."
                    }
                },
                "required": [
                    "id",
                    "name",
                    "slug",
                    "url",
                    "api_url",
                    "summary",
                    "alternate_names",
                    "year",
                    "is_version",
                    "version_of",
                    "versions",
                    "producers",
                    "counts",
                    "created_at",
                    "updated_at"
                ],
                "title": "RiddimResource"
            },
            "SeriesCollection": {
                "type": "array",
                "items": {
                    "$ref": "#\/components\/schemas\/SeriesResource"
                },
                "title": "SeriesCollection"
            },
            "SeriesResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer",
                        "examples": [
                            2
                        ]
                    },
                    "title": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "examples": [
                            "Riddim Driven"
                        ]
                    },
                    "slug": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "examples": [
                            "riddim-driven"
                        ]
                    },
                    "url": {
                        "type": "string",
                        "examples": [
                            "https:\/\/riddim-id.com\/series\/riddim-driven"
                        ]
                    },
                    "api_url": {
                        "type": "string",
                        "examples": [
                            "https:\/\/api.riddim-id.com\/v1\/series\/2"
                        ]
                    },
                    "counts": {
                        "type": "object",
                        "properties": {
                            "albums": {
                                "type": "integer",
                                "examples": [
                                    142
                                ]
                            }
                        },
                        "required": [
                            "albums"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "When riddim-admin first published this row. @format date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "When riddim-admin last regenerated this row. @format date-time"
                    },
                    "albums": {
                        "type": "string",
                        "description": "The series' albums, only on the single-series endpoint."
                    }
                },
                "required": [
                    "id",
                    "title",
                    "slug",
                    "url",
                    "api_url",
                    "counts",
                    "created_at",
                    "updated_at"
                ],
                "title": "SeriesResource"
            },
            "TuneCollection": {
                "type": "array",
                "items": {
                    "$ref": "#\/components\/schemas\/TuneResource"
                },
                "title": "TuneCollection"
            },
            "TuneResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer",
                        "examples": [
                            759
                        ]
                    },
                    "title": {
                        "type": "string",
                        "examples": [
                            "Under Mi Sleng Teng"
                        ]
                    },
                    "year": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "description": "Release year; null when unknown. @example 1985"
                    },
                    "is_original": {
                        "type": "boolean",
                        "description": "True when this is the original recording the riddim is named after."
                    },
                    "artists": {
                        "type": "array",
                        "description": "The performing artists.",
                        "items": {
                            "type": "object",
                            "properties": {
                                "id": {
                                    "type": "integer"
                                },
                                "name": {
                                    "type": "string"
                                },
                                "url": {
                                    "type": "string"
                                },
                                "api_url": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "id",
                                "name",
                                "url",
                                "api_url"
                            ]
                        }
                    },
                    "producers": {
                        "type": "array",
                        "description": "Who produced the tune.",
                        "items": {
                            "type": "object",
                            "properties": {
                                "id": {
                                    "type": "integer"
                                },
                                "name": {
                                    "type": "string"
                                },
                                "url": {
                                    "type": "string"
                                },
                                "api_url": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "id",
                                "name",
                                "url",
                                "api_url"
                            ]
                        }
                    },
                    "riddim": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "description": "The riddim this tune rides. When that riddim is itself a version,\n`version_of` names the original rhythm.",
                        "items": {}
                    },
                    "label": {
                        "type": [
                            "object",
                            "null"
                        ],
                        "description": "The label, as in the Label column of the site's tune tables.",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "name": {
                                "type": "string"
                            },
                            "url": {
                                "type": "string"
                            },
                            "api_url": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "id",
                            "name",
                            "url",
                            "api_url"
                        ]
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "When riddim-admin first published this row. @format date-time"
                    },
                    "updated_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "When riddim-admin last regenerated this row. @format date-time"
                    },
                    "albums": {
                        "type": "string",
                        "description": "Series albums this tune appears on, only with `?include=albums`."
                    },
                    "dub_albums": {
                        "type": "string",
                        "description": "Dub albums this tune is a dub on, only with `?include=albums`. A vocal original a dub was mixed from is not on the dub album, so it is not listed here."
                    }
                },
                "required": [
                    "id",
                    "title",
                    "year",
                    "is_original",
                    "artists",
                    "producers",
                    "riddim",
                    "label",
                    "created_at",
                    "updated_at"
                ],
                "title": "TuneResource"
            }
        },
        "responses": {
            "ProblemValidationException": {
                "description": "Validation error",
                "content": {
                    "application\/problem+json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "type": {
                                    "type": "string",
                                    "format": "uri",
                                    "description": "Link to the paragraph in these docs that explains the error code."
                                },
                                "title": {
                                    "type": "string",
                                    "description": "The HTTP status text."
                                },
                                "status": {
                                    "type": "integer",
                                    "examples": [
                                        422
                                    ]
                                },
                                "detail": {
                                    "type": "string",
                                    "description": "A human-readable explanation. Wording may change; switch on `code`, not on this."
                                },
                                "instance": {
                                    "type": "string",
                                    "description": "The path that was requested."
                                },
                                "code": {
                                    "type": "string",
                                    "description": "Stable machine-readable error code.",
                                    "examples": [
                                        "validation_failed"
                                    ]
                                },
                                "request_id": {
                                    "type": "string",
                                    "description": "Quote this when reporting a problem."
                                },
                                "errors": {
                                    "type": "object",
                                    "description": "Validation messages per query parameter.",
                                    "additionalProperties": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                }
                            },
                            "required": [
                                "type",
                                "title",
                                "status",
                                "code"
                            ]
                        }
                    }
                }
            }
        }
    }
}