com.suibari.nagi.appLinks

suibari.com

Schema Diff

+10 -11

From

CID
bafyreiek6bkssuj...
Indexed At
2026-07-23 00:54 UTC
View this version

To

CID
bafyreighvracja4...
Indexed At
2026-07-23 08:06 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

4 breaking changes, 2 non-breaking changes.

Breaking Changes (4)
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "com.suibari.nagi.appLinks#field", src: "com.suibari.nagi.appLinks#field", tgt: "com.suibari.nagi.appLinks#field.role", kind: "prop", name: Some("role") }
  • 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") }
  • ConstraintTightened ConstraintTightened { vertex_id: "com.suibari.nagi.appLinks#field.role", sort: "knownValues", old_value: "[\"title\",\"value\",\"datetime\",\"url\"]", new_value: "[\"value\",\"datetime\",\"url\",\"image\"]" }
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

Removed Elements

  • RemovedVertex { vertex_id: "com.suibari.nagi.appLinks#field.label" }

Added Elements

  • AddedVertex { vertex_id: "com.suibari.nagi.appLinks#link.repeat" }

Constraint Changes

  • ConstraintTightened ConstraintTightened { vertex_id: "com.suibari.nagi.appLinks#field.role", sort: "knownValues", old_value: "[\"title\",\"value\",\"datetime\",\"url\"]", new_value: "[\"value\",\"datetime\",\"url\",\"image\"]" }

Additional Notes

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

Compare Other Versions

Lexicon Garden

@