{
"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
}