# Changelog

## [0.36.0] - 2026-04-29

- Documented `RsVideoCapabilities.maxConcurrentJobs` host-side concurrency semantics.
- `null`/missing uses the host default, `0` means unlimited, and positive values are strict per-plugin limits.

## [0.22.0] - 2026-02-13

- Extended `RsIds` with optional books/manga fields:
  - `isbn13: Option<String>`
  - `openlibrary_edition_id: Option<String>`
  - `openlibrary_work_id: Option<String>`
  - `google_books_volume_id: Option<String>`
  - `anilist_manga_id: Option<u64>`
  - `mangadex_manga_uuid: Option<String>`
  - `myanimelist_manga_id: Option<u64>`
  - `volume: Option<f64>`
  - `chapter: Option<f64>`
  - `asin: Option<String>`
- Added canonical short output prefixes for new IDs:
  - `isbn13`
  - `oleid`
  - `olwid`
  - `gbvid`
  - `anilist`
  - `mangadex`
  - `mal`
  - `asin`
- Added accepted aliases in parsing:
  - `openlibrary_edition_id` -> `oleid`
  - `openlibrary_work_id` -> `olwid`
  - `google_books_volume_id` -> `gbvid`
  - `anilist_manga_id` -> `anilist`
  - `mangadex_manga_uuid` -> `mangadex`
  - `myanimelist_manga_id` -> `mal`
- Parsing is now case-insensitive for ID sources.
- `anilist` and `mal` values are validated as `u64`.
- Added pipe-suffix chapter/volume parsing for manga providers:
  - `anilist:<id>|volume:<v>|chapter:<c>`
  - `mal:<id>|volume:<v>|chapter:<c>`
  - `mangadex:<id>|volume:<v>|chapter:<c>`
- Added detailed output helpers while keeping existing base `as_*` methods unchanged:
  - `as_anilist_manga_id_with_details()`
  - `as_myanimelist_manga_id_with_details()`
  - `as_mangadex_manga_uuid_with_details()`
- Updated best-external selection fallback order to include the new book/manga IDs after `trakt`, `imdb`, `tmdb`, `tvdb`.
- Fixed `as_id()` `tvdb` formatting to emit `tvdb:<id>` instead of `tmdb:<id>`.
