actor.rpg.sprite

rpg.actor

Schema Diff

+6 -2

From

CID
bafyreig3pfadkjb...
Indexed At
2026-04-04 21:45 UTC
View this version

To

CID
bafyreicdnk3x57o...
Indexed At
2026-04-06 03:50 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 3 non-breaking changes.

Non-Breaking Changes (3)
  • AddedVertex AddedVertex { vertex_id: "actor.rpg.sprite:body.source" }
  • AddedEdge AddedEdge { src: "actor.rpg.sprite:body", tgt: "actor.rpg.sprite:body.source", kind: "prop", name: Some("source") }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "actor.rpg.sprite:body.animationSpeed", sort: "default" }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "actor.rpg.sprite:body.source" }

Constraint Changes

  • ConstraintRemoved ConstraintRemoved { vertex_id: "actor.rpg.sprite:body.animationSpeed", sort: "default" }

Additional Notes

  • Non-breaking: AddedEdge { src: "actor.rpg.sprite:body", tgt: "actor.rpg.sprite:body.source", kind: "prop", name: Some("source") }
1 1
{
2 2
  "id": "actor.rpg.sprite",
3 3
  "defs": {
4 4
    "main": {
5 5
      "key": "literal:self",
6 6
      "type": "record",
7 7
      "record": {
8 8
        "type": "object",
9 9
        "required": [
10 10
          "spriteSheet",
11 11
          "createdAt"
12 12
        ],
13 13
        "properties": {
14 14
          "name": {
15 15
            "type": "string",
16 16
            "maxLength": 100,
17 17
            "description": "Display name for the character (optional, can differ from Bluesky display name)",
18 18
            "maxGraphemes": 50
19 19
          },
20 20
          "rows": {
21 21
            "type": "integer",
22 22
            "maximum": 16,
23 23
            "minimum": 1,
24 24
            "description": "Number of rows in the sprite sheet (typically 4 for directional sprites: down, left, right, up)"
25 25
          },
26 26
          "width": {
27 27
            "type": "integer",
28 28
            "maximum": 4096,
29 29
            "minimum": 1,
30 30
            "description": "Total width of the sprite sheet in pixels"
31 31
          },
32 32
          "frames": {
33 33
            "type": "integer",
34 34
            "maximum": 64,
35 35
            "minimum": 1,
36 36
            "description": "Total number of animation frames"
37 37
          },
38 38
          "height": {
39 39
            "type": "integer",
40 40
            "maximum": 4096,
41 41
            "minimum": 1,
42 42
            "description": "Total height of the sprite sheet in pixels"
43 43
          },
44 +
          "source": {
45 +
            "type": "string",
46 +
            "format": "at-uri",
47 +
            "description": "AT-URI of the generator record this sprite was composed from, if any (e.g. at://did:plc:xxx/actor.rpg.generator/self)"
48 +
          },
44 49
          "columns": {
45 50
            "type": "integer",
46 51
            "maximum": 16,
47 52
            "minimum": 1,
48 53
            "description": "Number of columns per animation cycle"
49 54
          },
50 55
          "createdAt": {
51 56
            "type": "string",
52 57
            "format": "datetime",
53 58
            "description": "When this record was first created"
54 59
          },
55 60
          "updatedAt": {
56 61
            "type": "string",
57 62
            "format": "datetime",
58 63
            "description": "When this record was last modified"
59 64
          },
60 65
          "frameWidth": {
61 66
            "type": "integer",
62 67
            "maximum": 512,
63 68
            "minimum": 1,
64 69
            "description": "Width of a single frame in pixels (if not auto-calculated from width/columns)"
65 70
          },
66 71
          "frameHeight": {
67 72
            "type": "integer",
68 73
            "maximum": 512,
69 74
            "minimum": 1,
70 75
            "description": "Height of a single frame in pixels (if not auto-calculated from height/rows)"
71 76
          },
72 77
          "spriteSheet": {
73 78
            "type": "blob",
74 79
            "accept": [
75 80
              "image/png"
76 81
            ],
77 82
            "maxSize": 10000000,
78 83
            "description": "The sprite sheet image (PNG only). Max 10MB."
79 84
          },
80 85
          "animationSpeed": {
81 86
            "type": "integer",
82 -
            "default": 200,
83 87
            "maximum": 2000,
84 88
            "minimum": 50,
85 -
            "description": "Milliseconds per frame for animation playback"
89 +
            "description": "Milliseconds per frame for animation playback. Defaults to 200 if omitted."
86 90
          }
87 91
        }
88 92
      },
89 93
      "description": "A user's RPG character sprite. One record per user (rkey: self)."
90 94
    }
91 95
  },
92 96
  "$type": "com.atproto.lexicon.schema",
93 97
  "lexicon": 1,
94 98
  "description": "A sprite sheet for an RPG character avatar."
95 99
}

Compare Other Versions

Lexicon Garden

@