{
"id": "equipment.rpg.give",
"defs": {
"main": {
"key": "any",
"type": "record",
"record": {
"type": "object",
"required": [
"recipient",
"item",
"title",
"givenAt"
],
"properties": {
"item": {
"type": "string",
"maxLength": 50,
"description": "Unique item identifier (e.g. 'popcorn', 'theatre_shirt')."
},
"kind": {
"type": "string",
"maxLength": 20,
"description": "Item kind. 'layer' for sprite-generator wearables, 'inventory' for non-wearable items. Defaults to 'layer' if omitted."
},
"stats": {
"type": "object",
"description": "Provider-defined properties or metadata for the item."
},
"title": {
"type": "string",
"maxLength": 100,
"description": "Human-readable display name for the item."
},
"context": {
"type": "string",
"maxLength": 200,
"description": "Origin description — where and how the item was earned (e.g. 'Avonlea Theatre popcorn vendor')."
},
"givenAt": {
"type": "string",
"format": "datetime",
"description": "When this item was given."
},
"iconCid": {
"type": "string",
"maxLength": 200,
"description": "CID of the item's icon PNG, if distinct from the asset."
},
"assetCid": {
"type": "string",
"maxLength": 200,
"description": "CID of the canonical asset or icon PNG. Used to verify the player's copy is untampered."
},
"category": {
"type": "string",
"maxLength": 30,
"description": "Generator layer category for 'layer' items (e.g. 'tops', 'righthand'). Omit for 'inventory' items."
},
"recipient": {
"type": "string",
"format": "did",
"description": "DID of the player who received this item."
},
"description": {
"type": "string",
"maxLength": 500,
"description": "Flavour text or description of the item."
}
}
},
"description": "Records that a provider granted an item to a specific recipient. The asset blob is not stored here — only the CID for integrity verification. Each give record is one item to one recipient."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1,
"description": "A provider's attestation that an item was given to a player. Lives on the provider's PDS."
}