# social.dracome.contributor.defs

> Published by [dracome.social](https://lexicon.garden/identity/did:plc:66dyrt2bmghwlmdteyizs5l3)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:66dyrt2bmghwlmdteyizs5l3/social.dracome.contributor.defs)
- [Documentation](https://lexicon.garden/lexicon/did:plc:66dyrt2bmghwlmdteyizs5l3/social.dracome.contributor.defs/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:66dyrt2bmghwlmdteyizs5l3/social.dracome.contributor.defs/examples)

## Definitions

### `social.dracome.contributor.defs#contributorIdentifier`

**Type**: `object`

An external identifier for a contributor from a known authority (GND, VIAF, Wikidata, or Open Library).

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `scheme` | `string` | Yes | The identifier scheme, lowercase like work.defs#catalogIdentifier: gnd (German National Library), viaf (Virtual International Authority File), wikidata (Wikidata entity ID), ol-author (Open Library author key). |
| `value` | `string` | Yes | The bare identifier value, matching Dracome's internal storage convention (e.g., GND number without URI prefix, VIAF ID without URL, Wikidata entity without prefix, OL key like OL123A). |

### `social.dracome.contributor.defs#contributorProfileRef`

**Type**: `object`

A dereferenceable reference to a contributor's profile record on their own PDS.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `cid` | `string` (cid) | No | Optional content hash of the referenced record at time of reference; informational only. |
| `uri` | `string` (at-uri) | Yes | AT-URI of the referenced social.dracome.contributor.profile record. |

### `social.dracome.contributor.defs#contributorRole`

**Type**: `string`

The role a person played in creating a book. Currently only 'author' is known. Additional roles (translator, illustrator, narrator, editor, etc.) are expected to be added over time by appending to knownValues — adding a new role is an additive, backwards-compatible lexicon change, not a versioning event. Consumers MUST tolerate unknown values.

**Known Values**:
- `author`

**Constraints**: maxLength: 64

### `social.dracome.contributor.defs#creditedContributor`

**Type**: `object`

A person credited on a book with a specific role, carrying a resolvable profile reference. Used in submission records where a network-resolvable profile is assumed to exist.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `contributor` | `ref` → `#contributorProfileRef` | Yes | Reference to the credited person's profile record. |
| `role` | `ref` → `#contributorRole` | Yes | The role this person held in creating this work. |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "contributorIdentifier": {
      "description": "An external identifier for a contributor from a known authority (GND, VIAF, Wikidata, or Open Library).",
      "properties": {
        "scheme": {
          "description": "The identifier scheme, lowercase like work.defs#catalogIdentifier: gnd (German National Library), viaf (Virtual International Authority File), wikidata (Wikidata entity ID), ol-author (Open Library author key).",
          "knownValues": [
            "gnd",
            "viaf",
            "wikidata",
            "ol-author"
          ],
          "maxLength": 64,
          "type": "string"
        },
        "value": {
          "description": "The bare identifier value, matching Dracome's internal storage convention (e.g., GND number without URI prefix, VIAF ID without URL, Wikidata entity without prefix, OL key like OL123A).",
          "maxLength": 256,
          "type": "string"
        }
      },
      "required": [
        "scheme",
        "value"
      ],
      "type": "object"
    },
    "contributorProfileRef": {
      "description": "A dereferenceable reference to a contributor's profile record on their own PDS.",
      "properties": {
        "cid": {
          "description": "Optional content hash of the referenced record at time of reference; informational only.",
          "format": "cid",
          "type": "string"
        },
        "uri": {
          "description": "AT-URI of the referenced social.dracome.contributor.profile record.",
          "format": "at-uri",
          "type": "string"
        }
      },
      "required": [
        "uri"
      ],
      "type": "object"
    },
    "contributorRole": {
      "description": "The role a person played in creating a book. Currently only 'author' is known. Additional roles (translator, illustrator, narrator, editor, etc.) are expected to be added over time by appending to knownValues — adding a new role is an additive, backwards-compatible lexicon change, not a versioning event. Consumers MUST tolerate unknown values.",
      "knownValues": [
        "author"
      ],
      "maxLength": 64,
      "type": "string"
    },
    "creditedContributor": {
      "description": "A person credited on a book with a specific role, carrying a resolvable profile reference. Used in submission records where a network-resolvable profile is assumed to exist.",
      "properties": {
        "contributor": {
          "description": "Reference to the credited person's profile record.",
          "ref": "#contributorProfileRef",
          "type": "ref"
        },
        "role": {
          "description": "The role this person held in creating this work.",
          "ref": "#contributorRole",
          "type": "ref"
        }
      },
      "required": [
        "contributor",
        "role"
      ],
      "type": "object"
    }
  },
  "id": "social.dracome.contributor.defs",
  "lexicon": 1
}
```
