actor.rpg.sprite

rpg.actor

Schema Diff

+7 -15

From

CID
bafyreihwlriu5ax...
Indexed At
2026-03-23 19:03 UTC
View this version

To

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

Compatibility Analysis

Breaking Changes Detected

2 breaking changes, 4 non-breaking changes.

Breaking Changes (2)
  • RemovedVertex RemovedVertex { vertex_id: "actor.rpg.sprite:body.engine" }
  • RemovedEdge RemovedEdge { src: "actor.rpg.sprite:body", tgt: "actor.rpg.sprite:body.engine", kind: "prop", name: Some("engine") }
Non-Breaking Changes (4)
  • 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.engine", sort: "maxLength" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "actor.rpg.sprite:body.animationSpeed", sort: "default" }

Migration Guidance

Removed Elements

  • RemovedVertex { vertex_id: "actor.rpg.sprite:body.engine" }

Added Elements

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

Constraint Changes

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

Additional Notes

  • Breaking: RemovedEdge { src: "actor.rpg.sprite:body", tgt: "actor.rpg.sprite:body.engine", kind: "prop", name: Some("engine") }
  • 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 -
          "engine",
12 11
          "createdAt"
13 12
        ],
14 13
        "properties": {
15 14
          "name": {
16 15
            "type": "string",
17 16
            "maxLength": 100,
18 17
            "description": "Display name for the character (optional, can differ from Bluesky display name)",
19 18
            "maxGraphemes": 50
20 19
          },
21 20
          "rows": {
22 21
            "type": "integer",
23 22
            "maximum": 16,
24 23
            "minimum": 1,
25 24
            "description": "Number of rows in the sprite sheet (typically 4 for directional sprites: down, left, right, up)"
26 25
          },
27 26
          "width": {
28 27
            "type": "integer",
29 28
            "maximum": 4096,
30 29
            "minimum": 1,
31 30
            "description": "Total width of the sprite sheet in pixels"
32 -
          },
33 -
          "engine": {
34 -
            "type": "string",
35 -
            "maxLength": 50,
36 -
            "description": "The game engine format this sprite is designed for. Determines animation interpretation.",
37 -
            "knownValues": [
38 -
              "rmmz",
39 -
              "rmmv",
40 -
              "rpgmaker2003",
41 -
              "custom"
42 -
            ]
43 31
          },
44 32
          "frames": {
45 33
            "type": "integer",
46 34
            "maximum": 64,
47 35
            "minimum": 1,
48 36
            "description": "Total number of animation frames"
49 37
          },
50 38
          "height": {
51 39
            "type": "integer",
52 40
            "maximum": 4096,
53 41
            "minimum": 1,
54 42
            "description": "Total height of the sprite sheet in pixels"
55 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 +
          },
56 49
          "columns": {
57 50
            "type": "integer",
58 51
            "maximum": 16,
59 52
            "minimum": 1,
60 53
            "description": "Number of columns per animation cycle"
61 54
          },
62 55
          "createdAt": {
63 56
            "type": "string",
64 57
            "format": "datetime",
65 58
            "description": "When this record was first created"
66 59
          },
67 60
          "updatedAt": {
68 61
            "type": "string",
69 62
            "format": "datetime",
70 63
            "description": "When this record was last modified"
71 64
          },
72 65
          "frameWidth": {
73 66
            "type": "integer",
74 67
            "maximum": 512,
75 68
            "minimum": 1,
76 69
            "description": "Width of a single frame in pixels (if not auto-calculated from width/columns)"
77 70
          },
78 71
          "frameHeight": {
79 72
            "type": "integer",
80 73
            "maximum": 512,
81 74
            "minimum": 1,
82 75
            "description": "Height of a single frame in pixels (if not auto-calculated from height/rows)"
83 76
          },
84 77
          "spriteSheet": {
85 78
            "type": "blob",
86 79
            "accept": [
87 80
              "image/png"
88 81
            ],
89 82
            "maxSize": 10000000,
90 83
            "description": "The sprite sheet image (PNG only). Max 10MB."
91 84
          },
92 85
          "animationSpeed": {
93 86
            "type": "integer",
94 -
            "default": 200,
95 87
            "maximum": 2000,
96 88
            "minimum": 50,
97 -
            "description": "Milliseconds per frame for animation playback"
89 +
            "description": "Milliseconds per frame for animation playback. Defaults to 200 if omitted."
98 90
          }
99 91
        }
100 92
      },
101 93
      "description": "A user's RPG character sprite. One record per user (rkey: self)."
102 94
    }
103 95
  },
104 96
  "$type": "com.atproto.lexicon.schema",
105 97
  "lexicon": 1,
106 -
  "description": "A sprite sheet for an RPG character avatar. Contains the image blob and metadata for animating the character in various game engines."
98 +
  "description": "A sprite sheet for an RPG character avatar."
107 99
}

Compare Other Versions

Lexicon Garden

@