com.suibari.nagi.putPreferences
Schema Diff
+25 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 15 non-breaking changes.
Non-Breaking Changes (15)
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.getPreferences#feedTab" }
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:input.feedTabs" }
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:input.feedTabs:items" }
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:input.feedTabsUpdatedAt" }
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:output.feedTabs" }
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:output.feedTabs:items" }
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:output.feedTabsUpdatedAt" }
- AddedEdge AddedEdge { src: "com.suibari.nagi.putPreferences:input", tgt: "com.suibari.nagi.putPreferences:input.feedTabs", kind: "prop", name: Some("feedTabs") }
- AddedEdge AddedEdge { src: "com.suibari.nagi.putPreferences:input", tgt: "com.suibari.nagi.putPreferences:input.feedTabsUpdatedAt", kind: "prop", name: Some("feedTabsUpdatedAt") }
- AddedEdge AddedEdge { src: "com.suibari.nagi.putPreferences:input.feedTabs", tgt: "com.suibari.nagi.putPreferences:input.feedTabs:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "com.suibari.nagi.putPreferences:input.feedTabs:items", tgt: "com.suibari.nagi.getPreferences#feedTab", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "com.suibari.nagi.putPreferences:output", tgt: "com.suibari.nagi.putPreferences:output.feedTabs", kind: "prop", name: Some("feedTabs") }
- AddedEdge AddedEdge { src: "com.suibari.nagi.putPreferences:output", tgt: "com.suibari.nagi.putPreferences:output.feedTabsUpdatedAt", kind: "prop", name: Some("feedTabsUpdatedAt") }
- AddedEdge AddedEdge { src: "com.suibari.nagi.putPreferences:output.feedTabs", tgt: "com.suibari.nagi.putPreferences:output.feedTabs:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "com.suibari.nagi.putPreferences:output.feedTabs:items", tgt: "com.suibari.nagi.getPreferences#feedTab", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "com.suibari.nagi.getPreferences#feedTab" }AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:input.feedTabs" }AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:input.feedTabs:items" }AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:input.feedTabsUpdatedAt" }AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:output.feedTabs" }AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:output.feedTabs:items" }AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:output.feedTabsUpdatedAt" }
Additional Notes
- Non-breaking: AddedEdge { src: "com.suibari.nagi.putPreferences:input", tgt: "com.suibari.nagi.putPreferences:input.feedTabs", kind: "prop", name: Some("feedTabs") }
- Non-breaking: AddedEdge { src: "com.suibari.nagi.putPreferences:input", tgt: "com.suibari.nagi.putPreferences:input.feedTabsUpdatedAt", kind: "prop", name: Some("feedTabsUpdatedAt") }
- Non-breaking: AddedEdge { src: "com.suibari.nagi.putPreferences:input.feedTabs", tgt: "com.suibari.nagi.putPreferences:input.feedTabs:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "com.suibari.nagi.putPreferences:input.feedTabs:items", tgt: "com.suibari.nagi.getPreferences#feedTab", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "com.suibari.nagi.putPreferences:output", tgt: "com.suibari.nagi.putPreferences:output.feedTabs", kind: "prop", name: Some("feedTabs") }
- Non-breaking: AddedEdge { src: "com.suibari.nagi.putPreferences:output", tgt: "com.suibari.nagi.putPreferences:output.feedTabsUpdatedAt", kind: "prop", name: Some("feedTabsUpdatedAt") }
- Non-breaking: AddedEdge { src: "com.suibari.nagi.putPreferences:output.feedTabs", tgt: "com.suibari.nagi.putPreferences:output.feedTabs:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "com.suibari.nagi.putPreferences:output.feedTabs:items", tgt: "com.suibari.nagi.getPreferences#feedTab", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"description": "同期対象の設定を書き込む。既読位置は (indexedAt, uri) が進むときだけ更新する単調マージ、お気に入りは 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
18
"emojiFavorites": {
19
19
"items": {
20
20
"type": "unknown"
21
21
},
22
22
"maxLength": 32,
23
23
"type": "array"
24
24
},
25
25
"emojiFavoritesUpdatedAt": {
26
26
"description": "emojiFavorites を送るときは必須。保存済みより古ければ書き込まない。",
27
27
"format": "datetime",
28
28
"type": "string"
29
29
},
30
+
"feedTabs": {
31
+
"items": {
32
+
"ref": "com.suibari.nagi.getPreferences#feedTab",
33
+
"type": "ref"
34
+
},
35
+
"maxLength": 16,
36
+
"type": "array"
37
+
},
38
+
"feedTabsUpdatedAt": {
39
+
"description": "feedTabs を送るときは必須。保存済みより古ければ書き込まない。",
40
+
"format": "datetime",
41
+
"type": "string"
42
+
},
30
43
"readPositions": {
31
44
"items": {
32
45
"ref": "com.suibari.nagi.getPreferences#readPosition",
33
46
"type": "ref"
34
47
},
35
48
"maxLength": 16,
36
49
"type": "array"
37
50
}
38
51
},
39
52
"type": "object"
40
53
}
41
54
},
42
55
"output": {
43
56
"encoding": "application/json",
44
57
"schema": {
45
58
"properties": {
46
59
"emojiFavorites": {
47
60
"items": {
48
61
"type": "unknown"
49
62
},
50
63
"maxLength": 32,
51
64
"type": "array"
52
65
},
53
66
"emojiFavoritesUpdatedAt": {
54
67
"format": "datetime",
55
68
"type": "string"
56
69
},
70
+
"feedTabs": {
71
+
"items": {
72
+
"ref": "com.suibari.nagi.getPreferences#feedTab",
73
+
"type": "ref"
74
+
},
75
+
"maxLength": 16,
76
+
"type": "array"
77
+
},
78
+
"feedTabsUpdatedAt": {
79
+
"format": "datetime",
80
+
"type": "string"
81
+
},
57
82
"readPositions": {
58
83
"description": "マージ後の確定値。送った位置が負けた場合は保存済みの方が返る。",
59
84
"items": {
60
85
"ref": "com.suibari.nagi.getPreferences#readPosition",
61
86
"type": "ref"
62
87
},
63
88
"type": "array"
64
89
}
65
90
},
66
91
"required": [
67
92
"readPositions",
68
93
"emojiFavorites"
69
94
],
70
95
"type": "object"
71
96
}
72
97
},
73
98
"type": "procedure"
74
99
}
75
100
},
76
101
"id": "com.suibari.nagi.putPreferences",
77
102
"lexicon": 1
78
103
}