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