# pub.byline.defs

> Published by [bylinepub.bsky.social](https://lexicon.garden/identity/did:plc:ppjep63wzgs57unhrdcxqttm)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:ppjep63wzgs57unhrdcxqttm/pub.byline.defs)
- [Documentation](https://lexicon.garden/lexicon/did:plc:ppjep63wzgs57unhrdcxqttm/pub.byline.defs/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:ppjep63wzgs57unhrdcxqttm/pub.byline.defs/examples)

## Definitions

### `pub.byline.defs#link`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `url` | `string` (uri) | Yes |  |
| `kind` | `string` | No |  |
| `label` | `string` | No |  |
| `primary` | `boolean` | No | Marks the preferred call-to-action link. At most one per book should set this. |
| `retailer` | `string` | No | Retailer name when kind is retailer, e.g. Smashwords. |
| `isAffiliate` | `boolean` | No | True when this is an affiliate link, for disclosure. |

### `pub.byline.defs#draft`

**Type**: `token`

In progress, not announced.

In progress, not announced.

### `pub.byline.defs#edition`

**Type**: `object`

A single published edition or format of the work.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `links` | `array` | No | Buy or sample links specific to this edition. |
| `format` | `string` | Yes |  |
| `isbn10` | `string` | No |  |
| `isbn13` | `string` | No |  |
| `pageCount` | `integer` | No |  |
| `publisher` | `string` | No |  |
| `fileFormats` | `array` | No | File formats for a digital edition, e.g. epub, pdf, mobi, m4b. |
| `releaseDate` | `string` (datetime) | No |  |
| `durationMinutes` | `integer` | No | Runtime for audiobook editions. |

### `pub.byline.defs#published`

**Type**: `token`

The work is published and available.

The work is published and available.

### `pub.byline.defs#outOfPrint`

**Type**: `token`

Previously published, no longer in print.

Previously published, no longer in print.

### `pub.byline.defs#contributor`

**Type**: `object`

A person credited on the work.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `did` | `string` (did) | No | AT Protocol identity of the contributor, if any. |
| `name` | `string` | Yes |  |
| `role` | `string` | No | e.g. author, co-author, translator, editor, illustrator, narrator. |

### `pub.byline.defs#forthcoming`

**Type**: `token`

Announced with a release date, not yet available.

Announced with a release date, not yet available.

### `pub.byline.defs#identifiers`

**Type**: `object`

External identifiers used to correlate this work across catalogues.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `asin` | `string` | No |  |
| `hiveId` | `string` | No | BookHive internal id, for reader-app correlation. |
| `isbn10` | `string` | No |  |
| `isbn13` | `string` | No |  |
| `goodreadsId` | `string` | No |  |
| `hiveBookUri` | `string` (at-uri) | No | AT-URI of the canonical buzz.bookhive.catalogBook record, if one exists. |

### `pub.byline.defs#seriesMembership`

**Type**: `object`

Series membership, if any. Book points at the series; the series record never points back.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `ref` | `ref` → `lex:com.atproto.repo.strongRef` | No | strongRef to a pub.byline.series record. |
| `name` | `string` | No | Series name, denormalized for display. |
| `position` | `integer` | No | Reading order within the series. |

## Raw Schema

```json
{
  "id": "pub.byline.defs",
  "defs": {
    "link": {
      "type": "object",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "format": "uri"
        },
        "kind": {
          "type": "string",
          "knownValues": [
            "retailer",
            "direct",
            "universal",
            "support",
            "sample",
            "review",
            "author",
            "publisher",
            "discussion",
            "social"
          ]
        },
        "label": {
          "type": "string",
          "maxLength": 128
        },
        "primary": {
          "type": "boolean",
          "description": "Marks the preferred call-to-action link. At most one per book should set this."
        },
        "retailer": {
          "type": "string",
          "description": "Retailer name when kind is retailer, e.g. Smashwords."
        },
        "isAffiliate": {
          "type": "boolean",
          "description": "True when this is an affiliate link, for disclosure."
        }
      }
    },
    "draft": {
      "type": "token",
      "description": "In progress, not announced."
    },
    "edition": {
      "type": "object",
      "required": [
        "format"
      ],
      "properties": {
        "links": {
          "type": "array",
          "items": {
            "ref": "lex:pub.byline.defs#link",
            "type": "ref"
          },
          "description": "Buy or sample links specific to this edition."
        },
        "format": {
          "type": "string",
          "knownValues": [
            "hardcover",
            "paperback",
            "ebook",
            "audiobook"
          ]
        },
        "isbn10": {
          "type": "string"
        },
        "isbn13": {
          "type": "string"
        },
        "pageCount": {
          "type": "integer",
          "minimum": 1
        },
        "publisher": {
          "type": "string",
          "maxLength": 256
        },
        "fileFormats": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 32
          },
          "description": "File formats for a digital edition, e.g. epub, pdf, mobi, m4b."
        },
        "releaseDate": {
          "type": "string",
          "format": "datetime"
        },
        "durationMinutes": {
          "type": "integer",
          "minimum": 1,
          "description": "Runtime for audiobook editions."
        }
      },
      "description": "A single published edition or format of the work."
    },
    "published": {
      "type": "token",
      "description": "The work is published and available."
    },
    "outOfPrint": {
      "type": "token",
      "description": "Previously published, no longer in print."
    },
    "contributor": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "did": {
          "type": "string",
          "format": "did",
          "description": "AT Protocol identity of the contributor, if any."
        },
        "name": {
          "type": "string",
          "maxLength": 256
        },
        "role": {
          "type": "string",
          "maxLength": 128,
          "description": "e.g. author, co-author, translator, editor, illustrator, narrator."
        }
      },
      "description": "A person credited on the work."
    },
    "forthcoming": {
      "type": "token",
      "description": "Announced with a release date, not yet available."
    },
    "identifiers": {
      "type": "object",
      "properties": {
        "asin": {
          "type": "string"
        },
        "hiveId": {
          "type": "string",
          "description": "BookHive internal id, for reader-app correlation."
        },
        "isbn10": {
          "type": "string"
        },
        "isbn13": {
          "type": "string"
        },
        "goodreadsId": {
          "type": "string"
        },
        "hiveBookUri": {
          "type": "string",
          "format": "at-uri",
          "description": "AT-URI of the canonical buzz.bookhive.catalogBook record, if one exists."
        }
      },
      "description": "External identifiers used to correlate this work across catalogues."
    },
    "seriesMembership": {
      "type": "object",
      "properties": {
        "ref": {
          "ref": "lex:com.atproto.repo.strongRef",
          "type": "ref",
          "description": "strongRef to a pub.byline.series record."
        },
        "name": {
          "type": "string",
          "maxLength": 256,
          "description": "Series name, denormalized for display."
        },
        "position": {
          "type": "integer",
          "minimum": 1,
          "description": "Reading order within the series."
        }
      },
      "description": "Series membership, if any. Book points at the series; the series record never points back."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
