net.anisota.chronicle.collection

anisota.net

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

Validate Record

Validate a record against net.anisota.chronicle.collection

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:lcieujcfkv4jx7gehsvok3pr
CID
bafyreiabbq4r67m2nfrpp2b54aprn7dvdjpfbasqou6jfqklaljpw5uunu
Indexed At
2026-06-22 18:49 UTC
AT-URI
at://did:plc:lcieujcfkv4jx7gehsvok3pr/com.atproto.lexicon.schema/net.anisota.chronicle.collection

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • net.anisota.chronicle.inventory recordnot from the namespace authority

    Item record in the player's inventory. rkey is the item ID. Updated via putRecord when quantities change.

  • net.anisota.chronicle.log recordnot from the namespace authority

    Granular chronicle event log. Each record is a single timestamped event. TID rkey for chronological ordering. Used to capture moments that don't have their own record type (moth sightings, random encounters, item discov…

Lexicon Garden

@