# net.anisota.chronicle.collection

> Published by [anisota.net](https://lexicon.garden/identity/did:plc:lcieujcfkv4jx7gehsvok3pr)

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:lcieujcfkv4jx7gehsvok3pr/net.anisota.chronicle.collection)
- [Documentation](https://lexicon.garden/lexicon/did:plc:lcieujcfkv4jx7gehsvok3pr/net.anisota.chronicle.collection/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:lcieujcfkv4jx7gehsvok3pr/net.anisota.chronicle.collection/examples)

## Definitions

### `net.anisota.chronicle.collection`

**Type**: `record`

Specimen photo record in the player's field guide. rkey is the specimen ID. Updated via putRecord when new photos are taken.

**Key**: `any`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `genus` | `string` | No | Taxonomic genus |
| `family` | `string` | No | Taxonomic family |
| `rarity` | `string` | No | Rarity level of the specimen |
| `source` | `string` | No | How the specimen was acquired |
| `status` | `string` | No | Collection status |
| `species` | `string` | No | Taxonomic species epithet |
| `lastSeen` | `string` (datetime) | No | When the specimen was last encountered |
| `quantity` | `integer` | Yes | Number of specimens collected (0 for seen but not caught) |
| `createdAt` | `string` (datetime) | Yes | When the specimen was first documented |
| `signature` | `ref` → `#chronicleSignature` | Yes |  |
| `updatedAt` | `string` (datetime) | No | When the record was last updated |
| `acquiredAt` | `string` (datetime) | No | When the specimen was first acquired or seen |
| `commonName` | `string` | No | Common name of the specimen |
| `specimenId` | `string` | Yes | Unique identifier for the specimen |
| `logRecordUri` | `string` | No | AT URI of the associated chronicle log event |
| `specimenData` | `unknown` | No | Supplementary specimen metadata (description, photo info, etc.) |
| `sourceDetails` | `unknown` | No | Additional details about acquisition |
| `scientificName` | `string` | No | Scientific name of the specimen |

### `net.anisota.chronicle.collection#chronicleSignature`

**Type**: `object`

ES256 cryptographic signature proving record authenticity

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `alg` | `string` | Yes | Signing algorithm (ES256) |
| `kid` | `string` | Yes | Key identifier for the signing key |
| `sig` | `string` | Yes | Base64-encoded ES256 signature |
| `nonce` | `string` | Yes | Unique random nonce to prevent replay |
| `version` | `integer` | Yes | Signature schema version |
| `signedAt` | `string` (datetime) | Yes | When the record was signed |

## Raw Schema

```json
{
  "id": "net.anisota.chronicle.collection",
  "defs": {
    "main": {
      "key": "any",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "specimenId",
          "quantity",
          "signature",
          "createdAt"
        ],
        "properties": {
          "genus": {
            "type": "string",
            "maxLength": 100,
            "description": "Taxonomic genus"
          },
          "family": {
            "type": "string",
            "maxLength": 100,
            "description": "Taxonomic family"
          },
          "rarity": {
            "enum": [
              "common",
              "uncommon",
              "rare",
              "epic",
              "legendary"
            ],
            "type": "string",
            "description": "Rarity level of the specimen"
          },
          "source": {
            "enum": [
              "game_card",
              "field_observation",
              "trade",
              "quest",
              "research",
              "expedition"
            ],
            "type": "string",
            "description": "How the specimen was acquired"
          },
          "status": {
            "enum": [
              "seen",
              "collected"
            ],
            "type": "string",
            "description": "Collection status"
          },
          "species": {
            "type": "string",
            "maxLength": 100,
            "description": "Taxonomic species epithet"
          },
          "lastSeen": {
            "type": "string",
            "format": "datetime",
            "description": "When the specimen was last encountered"
          },
          "quantity": {
            "type": "integer",
            "minimum": 0,
            "description": "Number of specimens collected (0 for seen but not caught)"
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "When the specimen was first documented"
          },
          "signature": {
            "ref": "#chronicleSignature",
            "type": "ref"
          },
          "updatedAt": {
            "type": "string",
            "format": "datetime",
            "description": "When the record was last updated"
          },
          "acquiredAt": {
            "type": "string",
            "format": "datetime",
            "description": "When the specimen was first acquired or seen"
          },
          "commonName": {
            "type": "string",
            "maxLength": 200,
            "description": "Common name of the specimen"
          },
          "specimenId": {
            "type": "string",
            "maxLength": 100,
            "description": "Unique identifier for the specimen"
          },
          "logRecordUri": {
            "type": "string",
            "description": "AT URI of the associated chronicle log event"
          },
          "specimenData": {
            "type": "unknown",
            "description": "Supplementary specimen metadata (description, photo info, etc.)"
          },
          "sourceDetails": {
            "type": "unknown",
            "description": "Additional details about acquisition"
          },
          "scientificName": {
            "type": "string",
            "maxLength": 200,
            "description": "Scientific name of the specimen"
          }
        }
      },
      "description": "Specimen photo record in the player's field guide. rkey is the specimen ID. Updated via putRecord when new photos are taken."
    },
    "chronicleSignature": {
      "type": "object",
      "required": [
        "sig",
        "alg",
        "kid",
        "signedAt",
        "nonce",
        "version"
      ],
      "properties": {
        "alg": {
          "type": "string",
          "description": "Signing algorithm (ES256)"
        },
        "kid": {
          "type": "string",
          "description": "Key identifier for the signing key"
        },
        "sig": {
          "type": "string",
          "description": "Base64-encoded ES256 signature"
        },
        "nonce": {
          "type": "string",
          "description": "Unique random nonce to prevent replay"
        },
        "version": {
          "type": "integer",
          "description": "Signature schema version"
        },
        "signedAt": {
          "type": "string",
          "format": "datetime",
          "description": "When the record was signed"
        }
      },
      "description": "ES256 cryptographic signature proving record authenticity"
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
