com.suibari.nagi.getPreferences

suibari.com

Schema Diff

+12 -0

From

CID
bafyreib3hasecuf...
Indexed At
2026-08-06 12:22 UTC
View this version

To

CID
bafyreia4u6fnnvd...
Indexed At
2026-08-15 17:15 UTC
View this version

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
}

Compare Other Versions

Lexicon Garden

@