app.atmobb.forum.stamp
Schema Diff
+7 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 2 non-breaking changes.
Non-Breaking Changes (2)
- AddedVertex AddedVertex { vertex_id: "app.atmobb.forum.stamp#look.symbol" }
- AddedEdge AddedEdge { src: "app.atmobb.forum.stamp#look", tgt: "app.atmobb.forum.stamp#look.symbol", kind: "prop", name: Some("symbol") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "app.atmobb.forum.stamp#look.symbol" }
Additional Notes
- Non-breaking: AddedEdge { src: "app.atmobb.forum.stamp#look", tgt: "app.atmobb.forum.stamp#look.symbol", kind: "prop", name: Some("symbol") }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"look": {
5
5
"description": "How the stamp is drawn: two colors and one of a bounded set of shapes. No free CSS or images.",
6
6
"properties": {
7
7
"bg": {
8
8
"description": "Background as a full six-digit hex color (for example #1a73e8). Writers must validate the #RRGGBB format.",
9
9
"maxLength": 7,
10
10
"type": "string"
11
11
},
12
12
"ink": {
13
13
"description": "Text and outline as a full six-digit hex color (for example #ffffff). Writers must validate the #RRGGBB format.",
14
14
"maxLength": 7,
15
15
"type": "string"
16
16
},
17
17
"shape": {
18
18
"knownValues": [
19
19
"stamp",
20
20
"pill",
21
21
"ticket",
22
22
"pixel"
23
23
],
24
24
"maxLength": 32,
25
25
"type": "string"
26
+
},
27
+
"symbol": {
28
+
"description": "Optional visible grapheme drawn on the stamp. Writers must reject invisible or whitespace-only symbols.",
29
+
"maxGraphemes": 1,
30
+
"maxLength": 64,
31
+
"minGraphemes": 1,
32
+
"type": "string"
26
33
}
27
34
},
28
35
"required": [
29
36
"bg",
30
37
"ink",
31
38
"shape"
32
39
],
33
40
"type": "object"
34
41
},
35
42
"main": {
36
43
"description": "A stamp a forum awards for belonging: being somewhere or arriving at some time, never for how much someone has posted. Lives in the forum account's repo. Members choose which awarded stamps to wear via the wearing list on their membership record.",
37
44
"key": "tid",
38
45
"record": {
39
46
"properties": {
40
47
"createdAt": {
41
48
"format": "datetime",
42
49
"type": "string"
43
50
},
44
51
"look": {
45
52
"ref": "#look",
46
53
"type": "ref"
47
54
},
48
55
"name": {
49
56
"maxGraphemes": 24,
50
57
"maxLength": 240,
51
58
"type": "string"
52
59
},
53
60
"trigger": {
54
61
"ref": "#trigger",
55
62
"type": "ref"
56
63
}
57
64
},
58
65
"required": [
59
66
"name",
60
67
"look",
61
68
"trigger",
62
69
"createdAt"
63
70
],
64
71
"type": "object"
65
72
},
66
73
"type": "record"
67
74
},
68
75
"trigger": {
69
76
"description": "What earns the stamp. kind names the event or place; the other fields parameterize it. Writers must validate that the parameter matching kind is present: board for firstPostInBoard, before for profileBefore, via for arrivedBy. firstPostHere and byHand take no parameter.",
70
77
"properties": {
71
78
"before": {
72
79
"description": "For profileBefore: members whose atmobb profile predates this moment earn the stamp.",
73
80
"format": "datetime",
74
81
"type": "string"
75
82
},
76
83
"board": {
77
84
"description": "For firstPostInBoard: the app.atmobb.forum.board whose first post earns the stamp.",
78
85
"format": "at-uri",
79
86
"type": "string"
80
87
},
81
88
"kind": {
82
89
"knownValues": [
83
90
"firstPostInBoard",
84
91
"firstPostHere",
85
92
"profileBefore",
86
93
"arrivedBy",
87
94
"byHand"
88
95
],
89
96
"maxLength": 32,
90
97
"type": "string"
91
98
},
92
99
"via": {
93
100
"description": "For arrivedBy: how the member was accepted (matches the acceptMember action's via).",
94
101
"knownValues": [
95
102
"invite",
96
103
"application",
97
104
"founding"
98
105
],
99
106
"maxLength": 32,
100
107
"type": "string"
101
108
}
102
109
},
103
110
"required": [
104
111
"kind"
105
112
],
106
113
"type": "object"
107
114
}
108
115
},
109
116
"id": "app.atmobb.forum.stamp",
110
117
"lexicon": 1
111
118
}