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