com.suibari.nagi.appLinks
Schema Diff
+6 -12
Compatibility Analysis
Breaking Changes Detected
2 breaking changes, 2 non-breaking changes.
Breaking Changes (2)
- RemovedVertex RemovedVertex { vertex_id: "com.suibari.nagi.appLinks#field.label" }
- RemovedEdge RemovedEdge { src: "com.suibari.nagi.appLinks#field", tgt: "com.suibari.nagi.appLinks#field.label", kind: "prop", name: Some("label") }
Non-Breaking Changes (2)
- ConstraintRemoved ConstraintRemoved { vertex_id: "com.suibari.nagi.appLinks#field.label", sort: "maxLength" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "com.suibari.nagi.appLinks#field.label", sort: "maxGraphemes" }
Migration Guidance
Removed Elements
RemovedVertex { vertex_id: "com.suibari.nagi.appLinks#field.label" }
Constraint Changes
- ConstraintRemoved ConstraintRemoved { vertex_id: "com.suibari.nagi.appLinks#field.label", sort: "maxLength" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "com.suibari.nagi.appLinks#field.label", sort: "maxGraphemes" }
Additional Notes
- Breaking: RemovedEdge { src: "com.suibari.nagi.appLinks#field", tgt: "com.suibari.nagi.appLinks#field.label", kind: "prop", name: Some("label") }
1
1
{
2
2
"id": "com.suibari.nagi.appLinks",
3
3
"defs": {
4
4
"link": {
5
5
"type": "object",
6
6
"required": [
7
7
"collection",
8
8
"label",
9
9
"selection",
10
10
"fields"
11
11
],
12
12
"properties": {
13
13
"label": {
14
14
"type": "string",
15
15
"maxLength": 640,
16
16
"description": "カード見出し(アプリ名相当)。",
17
17
"maxGraphemes": 64
18
18
},
19
19
"appUri": {
20
20
"type": "string",
21
21
"format": "uri",
22
22
"description": "アプリの Web サイト URL。favicon の取得元にもなる。"
23
23
},
24
24
"fields": {
25
25
"type": "array",
26
26
"items": {
27
27
"ref": "#field",
28
28
"type": "ref"
29
29
},
30
30
"maxLength": 10
31
31
},
32
32
"enabled": {
33
33
"type": "boolean",
34
34
"default": true,
35
35
"description": "この連携をプロフィールに表示するか。"
36
36
},
37
37
"iconUrl": {
38
38
"type": "string",
39
39
"format": "uri",
40
40
"description": "アプリのアイコン(favicon)URL。連携設定時に appUri から解決して保存する。"
41
41
},
42
42
"selection": {
43
43
"type": "string",
44
44
"default": "latest",
45
45
"description": "表示するレコードの選び方。MVP は最新1件(latest)のみ。",
46
46
"knownValues": [
47
47
"latest"
48
48
]
49
49
},
50
50
"collection": {
51
51
"type": "string",
52
52
"format": "nsid",
53
53
"description": "表示対象のレコード collection の NSID。"
54
54
}
55
55
}
56
56
},
57
57
"main": {
58
58
"key": "literal:self",
59
59
"type": "record",
60
60
"record": {
61
61
"type": "object",
62
62
"required": [
63
63
"links",
64
64
"createdAt"
65
65
],
66
66
"properties": {
67
67
"links": {
68
68
"type": "array",
69
69
"items": {
70
70
"ref": "#link",
71
71
"type": "ref"
72
72
},
73
73
"maxLength": 20
74
74
},
75
75
"createdAt": {
76
76
"type": "string",
77
77
"format": "datetime"
78
78
}
79
79
}
80
80
},
81
81
"description": "プロフィールカードに並べる、任意の Atmosphere アプリへの連携宣言リスト。所有者本人が curate し、どの collection のどのフィールドを表示するかを定義する。公開レコード。"
82
82
},
83
83
"field": {
84
84
"type": "object",
85
85
"required": [
86
-
"path",
87
-
"role"
86
+
"path"
88
87
],
89
88
"properties": {
90
89
"path": {
91
90
"type": "string",
92
91
"maxLength": 512,
93
92
"description": "レコード本体を flatten したキーパス(例 \"trackName\" / \"embed.title\" / \"items[0].name\")。"
94
93
},
95
94
"role": {
96
95
"type": "string",
97
-
"description": "描画ヒント。title=見出し、value=本文、datetime=日時、url=リンク。",
96
+
"description": "任意の描画ヒント。省略時は表示側が値から自動判別する。",
98
97
"knownValues": [
99
-
"title",
100
98
"value",
101
99
"datetime",
102
-
"url"
100
+
"url",
101
+
"image"
103
102
]
104
-
},
105
-
"label": {
106
-
"type": "string",
107
-
"maxLength": 640,
108
-
"description": "表示ラベル(省略時は path 末尾)。",
109
-
"maxGraphemes": 64
110
103
}
111
-
}
104
+
},
105
+
"description": "プロフィールに表示するフィールド。表示するキーパスの宣言のみを持ち、描画の役割(値/日時/リンク/画像)は表示側が値から自動判別する。"
112
106
}
113
107
},
114
108
"$type": "com.atproto.lexicon.schema",
115
109
"lexicon": 1
116
110
}