# Data model

```
work (fds_wk_…)  →  edition (fds_ed_…)  →  ISBN / product
contributor (fds_au_…)
```

| Entity | Prefix | What it is |
|---|---|---|
| Work | `fds_wk_` | Abstract title. Synopsis lives here. |
| Edition | `fds_ed_` | A specific publication. What product UIs want. |
| Contributor | `fds_au_` | Author / editor / etc. |

Ids are stable across releases. If two records merge, the oldest id survives and the retired id **301**s. Follow redirects.

About **8.4M** of **78.2M** works have a `description` in this release.

## Book object

Returned by ISBN, book id, search hits, and match candidates.

```json
{
  "id": "fds_ed_37306635333664393039",
  "work_id": "fds_wk_61363037333564616531",
  "title": "Project Hail Mary",
  "subtitle": null,
  "authors": ["Andy Weir"],
  "contributors": [
    { "id": "fds_au_37316331633930383534", "name": "Andy Weir", "role": "author" }
  ],
  "isbn13": "9780593135204",
  "isbn10": "0593135202",
  "publication_date": null,
  "publisher": null,
  "language": "eng",
  "subjects": [],
  "page_count": null,
  "format": null,
  "kind": "primary",
  "identifiers": [],
  "description": "Ryland Grace is the sole survivor…",
  "description_source": "open_library.description",
  "release": "2026-09.2",
  "schema_version": "books.v1"
}
```

| Field | Notes |
|---|---|
| `id` | Edition id |
| `work_id` | Parent work |
| `title`, `subtitle` | Edition title. `subtitle` may be null |
| `authors` | Display names. Open Library `/authors/OL…` keys are resolved on read. Some editions are still `[]` |
| `contributors` | Same people with `fds_au_…` ids when we can resolve them. Use this to link an author page. Empty when the edition has no joinable name or OL key |
| `isbn13`, `isbn10` | May be null |
| `publication_date`, `publisher`, `language`, `subjects`, `page_count`, `format` | Often sparse |
| `kind` | Computed from title / subjects / format: `primary`, `graphic`, `derivative`, `audio`, `set` |
| `identifiers` | `{ namespace, value }` pairs |
| `description`, `description_source` | From the parent work (`open_library.description` when present) |
| `release` | e.g. `2026-09.2` |
| `schema_version` | Always `books.v1` |

## Work object

```json
{
  "id": "fds_wk_61363037333564616531",
  "title": "Project Hail Mary",
  "subtitle": null,
  "language": "eng",
  "subjects": [],
  "series": null,
  "description": "Ryland Grace is the sole survivor…",
  "description_source": "open_library.description",
  "release": "2026-09.2"
}
```

## Contributor object

```json
{
  "id": "fds_au_37316331633930383534",
  "name": "Andy Weir",
  "sort_name": "Weir, Andy",
  "release": "2026-09.2"
}
```
