# com.nerdballot.book

> One record per work (not per edition). The record key is the work's Nerd Ballot catalog id.

- Kind: record
- Record key: tid
- Authority: nerdballot.com
- Lexicon: 1
- Published by [nerdballot.com](https://lexicon.garden/identity/did:plc:h4wwy6staenmbvom5rnwz3no), the NSID's authority

## Links

- [Documentation](https://lexicon.garden/lexicon/did:plc:h4wwy6staenmbvom5rnwz3no/com.nerdballot.book)
- [Schema JSON](https://lexicon.garden/lexicon/did:plc:h4wwy6staenmbvom5rnwz3no/com.nerdballot.book/schema.json)
- [Analytics](https://lexicon.garden/lexicon/did:plc:h4wwy6staenmbvom5rnwz3no/com.nerdballot.book/analytics)

## Record (`com.nerdballot.book`)

Type: record · key tid

### Properties

- `authors` (array, required)
  - Constraints: maxLength: 20
  - `items` (string)
    - Constraints: maxLength: 1000, maxGraphemes: 100
- `createdAt` (string · datetime, required)
- `isSample` (boolean): True for fake books used to test the site.
- `publicationDate` (string): First qualifying publication date, YYYY-MM-DD.
  - Constraints: maxLength: 10
- `publisher` (string)
  - Constraints: maxLength: 1000, maxGraphemes: 100
- `title` (string, required)
  - Constraints: maxLength: 3000, maxGraphemes: 300
- `version` (integer, required)
  - Constraints: minimum: 1

## Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "One record per work (not per edition). The record key is the work's Nerd Ballot catalog id.",
      "key": "tid",
      "record": {
        "properties": {
          "authors": {
            "items": {
              "maxGraphemes": 100,
              "maxLength": 1000,
              "type": "string"
            },
            "maxLength": 20,
            "type": "array"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "isSample": {
            "description": "True for fake books used to test the site.",
            "type": "boolean"
          },
          "publicationDate": {
            "description": "First qualifying publication date, YYYY-MM-DD.",
            "maxLength": 10,
            "type": "string"
          },
          "publisher": {
            "maxGraphemes": 100,
            "maxLength": 1000,
            "type": "string"
          },
          "title": {
            "maxGraphemes": 300,
            "maxLength": 3000,
            "type": "string"
          },
          "version": {
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "version",
          "title",
          "authors",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "description": "A canonical work in the Nerd Ballot catalog, published by the Nerd Ballot account. Ballots reference these records by AT-URI.",
  "id": "com.nerdballot.book",
  "lexicon": 1
}
```
