com.suibari.nagi.putPreferences
Schema Diff
+17 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 11 non-breaking changes.
Non-Breaking Changes (11)
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.getChronicle#readYear" }
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:input.chronicleReadYears" }
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:input.chronicleReadYears:items" }
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:output.chronicleReadYears" }
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:output.chronicleReadYears:items" }
- AddedEdge AddedEdge { src: "com.suibari.nagi.putPreferences:input", tgt: "com.suibari.nagi.putPreferences:input.chronicleReadYears", kind: "prop", name: Some("chronicleReadYears") }
- AddedEdge AddedEdge { src: "com.suibari.nagi.putPreferences:input.chronicleReadYears", tgt: "com.suibari.nagi.putPreferences:input.chronicleReadYears:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "com.suibari.nagi.putPreferences:input.chronicleReadYears:items", tgt: "com.suibari.nagi.getChronicle#readYear", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "com.suibari.nagi.putPreferences:output", tgt: "com.suibari.nagi.putPreferences:output.chronicleReadYears", kind: "prop", name: Some("chronicleReadYears") }
- AddedEdge AddedEdge { src: "com.suibari.nagi.putPreferences:output.chronicleReadYears", tgt: "com.suibari.nagi.putPreferences:output.chronicleReadYears:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "com.suibari.nagi.putPreferences:output.chronicleReadYears:items", tgt: "com.suibari.nagi.getChronicle#readYear", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "com.suibari.nagi.getChronicle#readYear" }AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:input.chronicleReadYears" }AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:input.chronicleReadYears:items" }AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:output.chronicleReadYears" }AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:output.chronicleReadYears:items" }
Additional Notes
- Non-breaking: AddedEdge { src: "com.suibari.nagi.putPreferences:input", tgt: "com.suibari.nagi.putPreferences:input.chronicleReadYears", kind: "prop", name: Some("chronicleReadYears") }
- Non-breaking: AddedEdge { src: "com.suibari.nagi.putPreferences:input.chronicleReadYears", tgt: "com.suibari.nagi.putPreferences:input.chronicleReadYears:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "com.suibari.nagi.putPreferences:input.chronicleReadYears:items", tgt: "com.suibari.nagi.getChronicle#readYear", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "com.suibari.nagi.putPreferences:output", tgt: "com.suibari.nagi.putPreferences:output.chronicleReadYears", kind: "prop", name: Some("chronicleReadYears") }
- Non-breaking: AddedEdge { src: "com.suibari.nagi.putPreferences:output.chronicleReadYears", tgt: "com.suibari.nagi.putPreferences:output.chronicleReadYears:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "com.suibari.nagi.putPreferences:output.chronicleReadYears:items", tgt: "com.suibari.nagi.getChronicle#readYear", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"description": "同期対象の本人設定を書き込む。既読位置は単調マージ、配列・言語・コンテンツ表示設定・最後のブックマークフォルダは updatedAt による後勝ち。各項目は省略でき、送った分だけを更新する。",
6
6
"errors": [
7
7
{
8
8
"name": "AuthRequired"
9
9
},
10
10
{
11
11
"name": "InvalidRequest"
12
12
}
13
13
],
14
14
"input": {
15
15
"encoding": "application/json",
16
16
"schema": {
17
17
"properties": {
18
+
"chronicleReadYears": {
19
+
"description": "年ごとの既読ハッシュ。過去の版は蓄積せず、現在の年表内容と一致する版だけを保存する。",
20
+
"items": {
21
+
"ref": "com.suibari.nagi.getChronicle#readYear",
22
+
"type": "ref"
23
+
},
24
+
"maxLength": 100,
25
+
"type": "array"
26
+
},
18
27
"emojiFavorites": {
19
28
"items": {
20
29
"type": "unknown"
21
30
},
22
31
"maxLength": 32,
23
32
"type": "array"
24
33
},
25
34
"emojiFavoritesUpdatedAt": {
26
35
"description": "emojiFavorites を送るときは必須。保存済みより古ければ書き込まない。",
27
36
"format": "datetime",
28
37
"type": "string"
29
38
},
30
39
"feedTabs": {
31
40
"items": {
32
41
"ref": "com.suibari.nagi.getPreferences#feedTab",
33
42
"type": "ref"
34
43
},
35
44
"maxLength": 16,
36
45
"type": "array"
37
46
},
38
47
"feedTabsUpdatedAt": {
39
48
"description": "feedTabs を送るときは必須。保存済みより古ければ書き込まない。",
40
49
"format": "datetime",
41
50
"type": "string"
42
51
},
43
52
"languagePreferences": {
44
53
"ref": "com.suibari.nagi.getPreferences#languagePreferences",
45
54
"type": "ref"
46
55
},
47
56
"languagePreferencesUpdatedAt": {
48
57
"format": "datetime",
49
58
"type": "string"
50
59
},
51
60
"lastBookmarkFolderId": {
52
61
"maxLength": 64,
53
62
"nullable": true,
54
63
"type": "string"
55
64
},
56
65
"lastBookmarkFolderUpdatedAt": {
57
66
"format": "datetime",
58
67
"type": "string"
59
68
},
60
69
"moderationPreferences": {
61
70
"ref": "com.suibari.nagi.getPreferences#moderationPreferences",
62
71
"type": "ref"
63
72
},
64
73
"moderationPreferencesUpdatedAt": {
65
74
"format": "datetime",
66
75
"type": "string"
67
76
},
68
77
"preferredName": {
69
78
"description": "botたんに呼んでほしい名前。空文字を送ると登録を解除し、表示名に戻す。送らなければ変更しない。",
70
79
"maxGraphemes": 40,
71
80
"maxLength": 120,
72
81
"type": "string"
73
82
},
74
83
"readPositions": {
75
84
"items": {
76
85
"ref": "com.suibari.nagi.getPreferences#readPosition",
77
86
"type": "ref"
78
87
},
79
88
"maxLength": 16,
80
89
"type": "array"
81
90
},
82
91
"replyFreq": {
83
92
"description": "botたんからの返信確率(0〜100%)。送らなければ変更しない。",
84
93
"maximum": 100,
85
94
"minimum": 0,
86
95
"type": "integer"
87
96
}
88
97
},
89
98
"type": "object"
90
99
}
91
100
},
92
101
"output": {
93
102
"encoding": "application/json",
94
103
"schema": {
95
104
"properties": {
105
+
"chronicleReadYears": {
106
+
"description": "年ごとの既読ハッシュ。過去の版は蓄積せず、現在の年表内容と一致する版だけを保存する。",
107
+
"items": {
108
+
"ref": "com.suibari.nagi.getChronicle#readYear",
109
+
"type": "ref"
110
+
},
111
+
"type": "array"
112
+
},
96
113
"emojiFavorites": {
97
114
"items": {
98
115
"type": "unknown"
99
116
},
100
117
"maxLength": 32,
101
118
"type": "array"
102
119
},
103
120
"emojiFavoritesUpdatedAt": {
104
121
"format": "datetime",
105
122
"type": "string"
106
123
},
107
124
"feedTabs": {
108
125
"items": {
109
126
"ref": "com.suibari.nagi.getPreferences#feedTab",
110
127
"type": "ref"
111
128
},
112
129
"maxLength": 16,
113
130
"type": "array"
114
131
},
115
132
"feedTabsUpdatedAt": {
116
133
"format": "datetime",
117
134
"type": "string"
118
135
},
119
136
"languagePreferences": {
120
137
"ref": "com.suibari.nagi.getPreferences#languagePreferences",
121
138
"type": "ref"
122
139
},
123
140
"languagePreferencesUpdatedAt": {
124
141
"format": "datetime",
125
142
"type": "string"
126
143
},
127
144
"lastBookmarkFolderId": {
128
145
"maxLength": 64,
129
146
"type": "string"
130
147
},
131
148
"lastBookmarkFolderUpdatedAt": {
132
149
"format": "datetime",
133
150
"type": "string"
134
151
},
135
152
"moderationPreferences": {
136
153
"ref": "com.suibari.nagi.getPreferences#moderationPreferences",
137
154
"type": "ref"
138
155
},
139
156
"moderationPreferencesUpdatedAt": {
140
157
"format": "datetime",
141
158
"type": "string"
142
159
},
143
160
"preferredName": {
144
161
"description": "botたんに呼んでほしい名前。省略時は未設定=表示名で呼ばれる。",
145
162
"maxGraphemes": 40,
146
163
"maxLength": 120,
147
164
"type": "string"
148
165
},
149
166
"readPositions": {
150
167
"description": "マージ後の確定値。送った位置が負けた場合は保存済みの方が返る。",
151
168
"items": {
152
169
"ref": "com.suibari.nagi.getPreferences#readPosition",
153
170
"type": "ref"
154
171
},
155
172
"type": "array"
156
173
},
157
174
"replyFreq": {
158
175
"description": "botたんからの返信確率(0〜100%)。",
159
176
"maximum": 100,
160
177
"minimum": 0,
161
178
"type": "integer"
162
179
}
163
180
},
164
181
"required": [
165
182
"readPositions",
166
183
"emojiFavorites"
167
184
],
168
185
"type": "object"
169
186
}
170
187
},
171
188
"type": "procedure"
172
189
}
173
190
},
174
191
"id": "com.suibari.nagi.putPreferences",
175
192
"lexicon": 1
176
193
}