{
"id": "pet.trezy.food",
"defs": {
"main": {
"key": "any",
"type": "record",
"record": {
"type": "object",
"required": [
"id",
"displayName",
"frame"
],
"properties": {
"id": {
"type": "string",
"description": "Stable identifier, matching the record key. What a dropped morsel names, and what dropFood validates against."
},
"frame": {
"type": "integer",
"minimum": 0,
"description": "Which frame of the food sheet draws this. ⚠ UNLIKE MONEY, WHERE THE FRAME INDEX *IS* THE TIER AND THEREFORE CARRIES MEANING, this is an arbitrary slot. It is carried per record so the sheet stays append-only: a new food takes the next free frame and no existing food moves. A frame past the end of the sheet this build ships is dropped by the client rather than drawn, because empty space at a believable size is a blank rectangle a player would try to feed to something."
},
"displayName": {
"type": "string",
"description": "What it is called out loud — the accessible name of a morsel lying on the ground, since the sprite carries no text."
}
}
},
"description": "One kind of food. Published by the game, never by a player — the definitions guard refuses these from anybody but the publisher, the same as species and tiers. A food a client cannot draw must render nothing rather than a substitute, so these outlive any given build on purpose."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}