com.suibari.nagi.appLinks

suibari.com

Schema Diff

+5 -11

From

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

To

CID
bafyreifntst4qkj...
Indexed At
2026-07-23 02:18 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

4 breaking changes, 0 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\"]" }

Migration Guidance

Removed Elements

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

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") }
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
        },
70 64
        "selection": {
71 65
          "default": "latest",
72 66
          "description": "表示するレコードの選び方。MVP は最新1件(latest)のみ。",
73 67
          "knownValues": [
74 68
            "latest"
75 69
          ],
76 70
          "type": "string"
77 71
        }
78 72
      },
79 73
      "required": [
80 74
        "collection",
81 75
        "label",
82 76
        "selection",
83 77
        "fields"
84 78
      ],
85 79
      "type": "object"
86 80
    },
87 81
    "main": {
88 82
      "description": "プロフィールカードに並べる、任意の Atmosphere アプリへの連携宣言リスト。所有者本人が curate し、どの collection のどのフィールドを表示するかを定義する。公開レコード。",
89 83
      "key": "literal:self",
90 84
      "record": {
91 85
        "properties": {
92 86
          "createdAt": {
93 87
            "format": "datetime",
94 88
            "type": "string"
95 89
          },
96 90
          "links": {
97 91
            "items": {
98 92
              "ref": "#link",
99 93
              "type": "ref"
100 94
            },
101 95
            "maxLength": 20,
102 96
            "type": "array"
103 97
          }
104 98
        },
105 99
        "required": [
106 100
          "links",
107 101
          "createdAt"
108 102
        ],
109 103
        "type": "object"
110 104
      },
111 105
      "type": "record"
112 106
    }
113 107
  },
114 108
  "id": "com.suibari.nagi.appLinks",
115 109
  "lexicon": 1
116 110
}

Compare Other Versions

Lexicon Garden

@