com.suibari.nagi.getPreferences
Schema Diff
+12 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 4 non-breaking changes.
Non-Breaking Changes (4)
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.getPreferences:output.preferredName" }
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.getPreferences:output.replyFreq" }
- AddedEdge AddedEdge { src: "com.suibari.nagi.getPreferences:output", tgt: "com.suibari.nagi.getPreferences:output.preferredName", kind: "prop", name: Some("preferredName") }
- AddedEdge AddedEdge { src: "com.suibari.nagi.getPreferences:output", tgt: "com.suibari.nagi.getPreferences:output.replyFreq", kind: "prop", name: Some("replyFreq") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "com.suibari.nagi.getPreferences:output.preferredName" }AddedVertex { vertex_id: "com.suibari.nagi.getPreferences:output.replyFreq" }
Additional Notes
- Non-breaking: AddedEdge { src: "com.suibari.nagi.getPreferences:output", tgt: "com.suibari.nagi.getPreferences:output.preferredName", kind: "prop", name: Some("preferredName") }
- Non-breaking: AddedEdge { src: "com.suibari.nagi.getPreferences:output", tgt: "com.suibari.nagi.getPreferences:output.replyFreq", kind: "prop", name: Some("replyFreq") }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"customFavorite": {
5
5
"description": "Bluemoji のスナップショット。url などは表示のたびに再解決されるので、権威は uri のみ。",
6
6
"properties": {
7
7
"emoji": {
8
8
"type": "unknown"
9
9
},
10
10
"kind": {
11
11
"const": "custom",
12
12
"type": "string"
13
13
}
14
14
},
15
15
"required": [
16
16
"kind",
17
17
"emoji"
18
18
],
19
19
"type": "object"
20
20
},
21
21
"feedTab": {
22
22
"description": "フィードのタブ1枚。必要なフィールドは kind ごとに異なる(list / custom は source、channel は uri、search は query)。",
23
23
"properties": {
24
24
"id": {
25
25
"maxLength": 64,
26
26
"type": "string"
27
27
},
28
28
"kind": {
29
29
"knownValues": [
30
30
"list",
31
31
"global",
32
32
"custom",
33
33
"channel",
34
34
"search"
35
35
],
36
36
"maxLength": 32,
37
37
"type": "string"
38
38
},
39
39
"label": {
40
40
"description": "表示名のスナップショット。権威は uri / query 側。",
41
41
"maxLength": 64,
42
42
"type": "string"
43
43
},
44
44
"query": {
45
45
"description": "kind が search のときの保存クエリ。",
46
46
"maxLength": 128,
47
47
"type": "string"
48
48
},
49
49
"queryKind": {
50
50
"knownValues": [
51
51
"keyword",
52
52
"tag"
53
53
],
54
54
"maxLength": 32,
55
55
"type": "string"
56
56
},
57
57
"source": {
58
58
"description": "kind が list / custom のときの参照先(list=home, custom=affirmation)。将来のユーザー定義フィードは uri で指す。",
59
59
"knownValues": [
60
60
"home",
61
61
"affirmation"
62
62
],
63
63
"maxLength": 32,
64
64
"type": "string"
65
65
},
66
66
"uri": {
67
67
"description": "kind が channel のときのチャンネル。",
68
68
"format": "at-uri",
69
69
"maxLength": 2048,
70
70
"type": "string"
71
71
}
72
72
},
73
73
"required": [
74
74
"id",
75
75
"kind"
76
76
],
77
77
"type": "object"
78
78
},
79
79
"main": {
80
80
"description": "端末をまたいで同期する本人の設定(my Nagi の既読位置とお気に入り絵文字)を返す。他ユーザーからは参照できない。",
81
81
"errors": [
82
82
{
83
83
"name": "AuthRequired"
84
84
}
85
85
],
86
86
"output": {
87
87
"encoding": "application/json",
88
88
"schema": {
89
89
"properties": {
90
90
"emojiFavorites": {
91
91
"description": "お気に入り絵文字パレット。表示順そのまま。要素は #unicodeFavorite または #customFavorite。",
92
92
"items": {
93
93
"type": "unknown"
94
94
},
95
95
"maxLength": 32,
96
96
"type": "array"
97
97
},
98
98
"emojiFavoritesUpdatedAt": {
99
99
"description": "省略時は、この利用者のお気に入りがまだ一度も同期されていないことを表す。",
100
100
"format": "datetime",
101
101
"type": "string"
102
102
},
103
103
"feedTabs": {
104
104
"description": "フィードのタブ。表示順そのまま。",
105
105
"items": {
106
106
"ref": "#feedTab",
107
107
"type": "ref"
108
108
},
109
109
"maxLength": 16,
110
110
"type": "array"
111
111
},
112
112
"feedTabsUpdatedAt": {
113
113
"description": "省略時は、この利用者がまだ一度もタブをカスタムしていないことを表す(クライアントは既定タブを使う)。",
114
114
"format": "datetime",
115
115
"type": "string"
116
116
},
117
+
"preferredName": {
118
+
"description": "botたんに呼んでほしい名前。省略時は未設定=表示名で呼ばれる。",
119
+
"maxGraphemes": 40,
120
+
"maxLength": 120,
121
+
"type": "string"
122
+
},
117
123
"readPositions": {
118
124
"items": {
119
125
"ref": "#readPosition",
120
126
"type": "ref"
121
127
},
122
128
"type": "array"
129
+
},
130
+
"replyFreq": {
131
+
"description": "botたんからの返信確率(0〜100%)。Bluesky側のfreq設定と共用。",
132
+
"maximum": 100,
133
+
"minimum": 0,
134
+
"type": "integer"
123
135
}
124
136
},
125
137
"required": [
126
138
"readPositions",
127
139
"emojiFavorites"
128
140
],
129
141
"type": "object"
130
142
}
131
143
},
132
144
"type": "query"
133
145
},
134
146
"readPosition": {
135
147
"description": "「ここまで読んだ」位置。新旧の比較は (indexedAt, uri) の辞書順で行う。",
136
148
"properties": {
137
149
"indexedAt": {
138
150
"format": "datetime",
139
151
"type": "string"
140
152
},
141
153
"section": {
142
154
"knownValues": [
143
155
"bot",
144
156
"community",
145
157
"list",
146
158
"channels",
147
159
"news"
148
160
],
149
161
"maxLength": 32,
150
162
"type": "string"
151
163
},
152
164
"uri": {
153
165
"format": "at-uri",
154
166
"maxLength": 2048,
155
167
"type": "string"
156
168
}
157
169
},
158
170
"required": [
159
171
"section",
160
172
"indexedAt",
161
173
"uri"
162
174
],
163
175
"type": "object"
164
176
},
165
177
"unicodeFavorite": {
166
178
"properties": {
167
179
"emoji": {
168
180
"maxLength": 64,
169
181
"type": "string"
170
182
},
171
183
"kind": {
172
184
"const": "unicode",
173
185
"type": "string"
174
186
}
175
187
},
176
188
"required": [
177
189
"kind",
178
190
"emoji"
179
191
],
180
192
"type": "object"
181
193
}
182
194
},
183
195
"id": "com.suibari.nagi.getPreferences",
184
196
"lexicon": 1
185
197
}