com.suibari.nagi.putPreferences

suibari.com

Schema Diff

+17 -1

From

CID
bafyreid7xn7cdqj...
Indexed At
2026-08-27 00:10 UTC
View this version

To

CID
bafyreiagwz4w6qo...
Indexed At
2026-09-02 11:47 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 11 non-breaking changes.

Non-Breaking Changes (11)
  • AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.getPreferences#moderationPreferences" }
  • AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:input.moderationPreferences" }
  • AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:input.moderationPreferencesUpdatedAt" }
  • AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:output.moderationPreferences" }
  • AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:output.moderationPreferencesUpdatedAt" }
  • AddedEdge AddedEdge { src: "com.suibari.nagi.putPreferences:input", tgt: "com.suibari.nagi.putPreferences:input.moderationPreferences", kind: "prop", name: Some("moderationPreferences") }
  • AddedEdge AddedEdge { src: "com.suibari.nagi.putPreferences:input", tgt: "com.suibari.nagi.putPreferences:input.moderationPreferencesUpdatedAt", kind: "prop", name: Some("moderationPreferencesUpdatedAt") }
  • AddedEdge AddedEdge { src: "com.suibari.nagi.putPreferences:input.moderationPreferences", tgt: "com.suibari.nagi.getPreferences#moderationPreferences", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "com.suibari.nagi.putPreferences:output", tgt: "com.suibari.nagi.putPreferences:output.moderationPreferences", kind: "prop", name: Some("moderationPreferences") }
  • AddedEdge AddedEdge { src: "com.suibari.nagi.putPreferences:output", tgt: "com.suibari.nagi.putPreferences:output.moderationPreferencesUpdatedAt", kind: "prop", name: Some("moderationPreferencesUpdatedAt") }
  • AddedEdge AddedEdge { src: "com.suibari.nagi.putPreferences:output.moderationPreferences", tgt: "com.suibari.nagi.getPreferences#moderationPreferences", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "com.suibari.nagi.getPreferences#moderationPreferences" }
  • AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:input.moderationPreferences" }
  • AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:input.moderationPreferencesUpdatedAt" }
  • AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:output.moderationPreferences" }
  • AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:output.moderationPreferencesUpdatedAt" }

Additional Notes

  • Non-breaking: AddedEdge { src: "com.suibari.nagi.putPreferences:input", tgt: "com.suibari.nagi.putPreferences:input.moderationPreferences", kind: "prop", name: Some("moderationPreferences") }
  • Non-breaking: AddedEdge { src: "com.suibari.nagi.putPreferences:input", tgt: "com.suibari.nagi.putPreferences:input.moderationPreferencesUpdatedAt", kind: "prop", name: Some("moderationPreferencesUpdatedAt") }
  • Non-breaking: AddedEdge { src: "com.suibari.nagi.putPreferences:input.moderationPreferences", tgt: "com.suibari.nagi.getPreferences#moderationPreferences", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "com.suibari.nagi.putPreferences:output", tgt: "com.suibari.nagi.putPreferences:output.moderationPreferences", kind: "prop", name: Some("moderationPreferences") }
  • Non-breaking: AddedEdge { src: "com.suibari.nagi.putPreferences:output", tgt: "com.suibari.nagi.putPreferences:output.moderationPreferencesUpdatedAt", kind: "prop", name: Some("moderationPreferencesUpdatedAt") }
  • Non-breaking: AddedEdge { src: "com.suibari.nagi.putPreferences:output.moderationPreferences", tgt: "com.suibari.nagi.getPreferences#moderationPreferences", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 -
      "description": "同期対象の本人設定を書き込む。既読位置は単調マージ、配列・言語設定・最後のブックマークフォルダは updatedAt による後勝ち。各項目は省略でき、送った分だけを更新する。",
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 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 30
            "feedTabs": {
31 31
              "items": {
32 32
                "ref": "com.suibari.nagi.getPreferences#feedTab",
33 33
                "type": "ref"
34 34
              },
35 35
              "maxLength": 16,
36 36
              "type": "array"
37 37
            },
38 38
            "feedTabsUpdatedAt": {
39 39
              "description": "feedTabs を送るときは必須。保存済みより古ければ書き込まない。",
40 40
              "format": "datetime",
41 41
              "type": "string"
42 42
            },
43 43
            "languagePreferences": {
44 44
              "ref": "com.suibari.nagi.getPreferences#languagePreferences",
45 45
              "type": "ref"
46 46
            },
47 47
            "languagePreferencesUpdatedAt": {
48 48
              "format": "datetime",
49 49
              "type": "string"
50 50
            },
51 51
            "lastBookmarkFolderId": {
52 52
              "maxLength": 64,
53 53
              "nullable": true,
54 54
              "type": "string"
55 55
            },
56 56
            "lastBookmarkFolderUpdatedAt": {
57 57
              "format": "datetime",
58 58
              "type": "string"
59 59
            },
60 +
            "moderationPreferences": {
61 +
              "ref": "com.suibari.nagi.getPreferences#moderationPreferences",
62 +
              "type": "ref"
63 +
            },
64 +
            "moderationPreferencesUpdatedAt": {
65 +
              "format": "datetime",
66 +
              "type": "string"
67 +
            },
60 68
            "preferredName": {
61 69
              "description": "botたんに呼んでほしい名前。空文字を送ると登録を解除し、表示名に戻す。送らなければ変更しない。",
62 70
              "maxGraphemes": 40,
63 71
              "maxLength": 120,
64 72
              "type": "string"
65 73
            },
66 74
            "readPositions": {
67 75
              "items": {
68 76
                "ref": "com.suibari.nagi.getPreferences#readPosition",
69 77
                "type": "ref"
70 78
              },
71 79
              "maxLength": 16,
72 80
              "type": "array"
73 81
            },
74 82
            "replyFreq": {
75 83
              "description": "botたんからの返信確率(0〜100%)。送らなければ変更しない。",
76 84
              "maximum": 100,
77 85
              "minimum": 0,
78 86
              "type": "integer"
79 87
            }
80 88
          },
81 89
          "type": "object"
82 90
        }
83 91
      },
84 92
      "output": {
85 93
        "encoding": "application/json",
86 94
        "schema": {
87 95
          "properties": {
88 96
            "emojiFavorites": {
89 97
              "items": {
90 98
                "type": "unknown"
91 99
              },
92 100
              "maxLength": 32,
93 101
              "type": "array"
94 102
            },
95 103
            "emojiFavoritesUpdatedAt": {
96 104
              "format": "datetime",
97 105
              "type": "string"
98 106
            },
99 107
            "feedTabs": {
100 108
              "items": {
101 109
                "ref": "com.suibari.nagi.getPreferences#feedTab",
102 110
                "type": "ref"
103 111
              },
104 112
              "maxLength": 16,
105 113
              "type": "array"
106 114
            },
107 115
            "feedTabsUpdatedAt": {
108 116
              "format": "datetime",
109 117
              "type": "string"
110 118
            },
111 119
            "languagePreferences": {
112 120
              "ref": "com.suibari.nagi.getPreferences#languagePreferences",
113 121
              "type": "ref"
114 122
            },
115 123
            "languagePreferencesUpdatedAt": {
116 124
              "format": "datetime",
117 125
              "type": "string"
118 126
            },
119 127
            "lastBookmarkFolderId": {
120 128
              "maxLength": 64,
121 129
              "type": "string"
122 130
            },
123 131
            "lastBookmarkFolderUpdatedAt": {
124 132
              "format": "datetime",
125 133
              "type": "string"
126 134
            },
135 +
            "moderationPreferences": {
136 +
              "ref": "com.suibari.nagi.getPreferences#moderationPreferences",
137 +
              "type": "ref"
138 +
            },
139 +
            "moderationPreferencesUpdatedAt": {
140 +
              "format": "datetime",
141 +
              "type": "string"
142 +
            },
127 143
            "preferredName": {
128 144
              "description": "botたんに呼んでほしい名前。省略時は未設定=表示名で呼ばれる。",
129 145
              "maxGraphemes": 40,
130 146
              "maxLength": 120,
131 147
              "type": "string"
132 148
            },
133 149
            "readPositions": {
134 150
              "description": "マージ後の確定値。送った位置が負けた場合は保存済みの方が返る。",
135 151
              "items": {
136 152
                "ref": "com.suibari.nagi.getPreferences#readPosition",
137 153
                "type": "ref"
138 154
              },
139 155
              "type": "array"
140 156
            },
141 157
            "replyFreq": {
142 158
              "description": "botたんからの返信確率(0〜100%)。",
143 159
              "maximum": 100,
144 160
              "minimum": 0,
145 161
              "type": "integer"
146 162
            }
147 163
          },
148 164
          "required": [
149 165
            "readPositions",
150 166
            "emojiFavorites"
151 167
          ],
152 168
          "type": "object"
153 169
        }
154 170
      },
155 171
      "type": "procedure"
156 172
    }
157 173
  },
158 174
  "id": "com.suibari.nagi.putPreferences",
159 175
  "lexicon": 1
160 176
}

Compare Other Versions

Lexicon Garden

@