com.suibari.nagi.getRadioTrack

suibari.com

Schema Diff

+16 -2

From

CID
bafyreigpkc2onjq...
Indexed At
2026-09-24 00:24 UTC
View this version

To

CID
bafyreiermzsdvnf...
Indexed At
2026-09-24 07:12 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

3 breaking changes, 4 non-breaking changes.

Breaking Changes (3)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.suibari.nagi.getRadioTrack#track", src: "com.suibari.nagi.getRadioTrack#track", tgt: "com.suibari.nagi.getRadioTrack#track.songUrl", kind: "prop", name: Some("songUrl") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.suibari.nagi.getRadioTrack#track", src: "com.suibari.nagi.getRadioTrack#track", tgt: "com.suibari.nagi.getRadioTrack#track.thumbnailUrl", kind: "prop", name: Some("thumbnailUrl") }
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "com.suibari.nagi.getRadioTrack#track", src: "com.suibari.nagi.getRadioTrack#track", tgt: "com.suibari.nagi.getRadioTrack#track.videoId", kind: "prop", name: Some("videoId") }
Non-Breaking Changes (4)
  • AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.getRadioTrack#track.songUrl" }
  • AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.getRadioTrack#track.thumbnailUrl" }
  • AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.getRadioTrack:output.unreadSlotKey" }
  • AddedEdge AddedEdge { src: "com.suibari.nagi.getRadioTrack:output", tgt: "com.suibari.nagi.getRadioTrack:output.unreadSlotKey", kind: "prop", name: Some("unreadSlotKey") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "com.suibari.nagi.getRadioTrack#track.songUrl" }
  • AddedVertex { vertex_id: "com.suibari.nagi.getRadioTrack#track.thumbnailUrl" }
  • AddedVertex { vertex_id: "com.suibari.nagi.getRadioTrack:output.unreadSlotKey" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "com.suibari.nagi.getRadioTrack#track", src: "com.suibari.nagi.getRadioTrack#track", tgt: "com.suibari.nagi.getRadioTrack#track.songUrl", kind: "prop", name: Some("songUrl") }
  • Breaking: RequiredEdgeAdded { vertex_id: "com.suibari.nagi.getRadioTrack#track", src: "com.suibari.nagi.getRadioTrack#track", tgt: "com.suibari.nagi.getRadioTrack#track.thumbnailUrl", kind: "prop", name: Some("thumbnailUrl") }
  • Breaking: RequiredEdgeRemoved { vertex_id: "com.suibari.nagi.getRadioTrack#track", src: "com.suibari.nagi.getRadioTrack#track", tgt: "com.suibari.nagi.getRadioTrack#track.videoId", kind: "prop", name: Some("videoId") }
  • Non-breaking: AddedEdge { src: "com.suibari.nagi.getRadioTrack:output", tgt: "com.suibari.nagi.getRadioTrack:output.unreadSlotKey", kind: "prop", name: Some("unreadSlotKey") }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 5
      "description": "認証した本人の現在のbotたんラジオ曲と未読状態。",
6 6
      "output": {
7 7
        "encoding": "application/json",
8 8
        "schema": {
9 9
          "properties": {
10 10
            "hasUnread": {
11 11
              "type": "boolean"
12 12
            },
13 13
            "track": {
14 14
              "ref": "#track",
15 15
              "type": "ref"
16 +
            },
17 +
            "unreadSlotKey": {
18 +
              "type": "string"
16 19
            }
17 20
          },
18 21
          "required": [
19 22
            "hasUnread"
20 23
          ],
21 24
          "type": "object"
22 25
        }
23 26
      },
24 27
      "type": "query"
25 28
    },
26 29
    "track": {
27 30
      "properties": {
28 31
        "artist": {
29 32
          "type": "string"
30 33
        },
31 34
        "comment": {
32 35
          "type": "string"
33 36
        },
34 37
        "commentEn": {
35 38
          "type": "string"
36 39
        },
37 40
        "commentJa": {
38 41
          "type": "string"
39 42
        },
40 43
        "publishedAt": {
41 44
          "format": "datetime",
42 45
          "type": "string"
43 46
        },
44 47
        "slotKey": {
45 48
          "type": "string"
46 49
        },
50 +
        "songUrl": {
51 +
          "description": "選曲した曲のページ。Last.fmまたは既存のYouTubeリンク。",
52 +
          "format": "uri",
53 +
          "type": "string"
54 +
        },
47 55
        "sourceUrl": {
48 56
          "format": "uri",
49 57
          "type": "string"
50 58
        },
59 +
        "thumbnailUrl": {
60 +
          "description": "曲のジャケット画像。既存のYouTube履歴では動画サムネイル。",
61 +
          "format": "uri",
62 +
          "type": "string"
63 +
        },
51 64
        "title": {
52 65
          "type": "string"
53 66
        },
54 67
        "videoId": {
55 68
          "type": "string"
56 69
        }
57 70
      },
58 71
      "required": [
59 72
        "slotKey",
60 73
        "title",
61 74
        "artist",
62 75
        "comment",
63 -
        "videoId",
64 -
        "publishedAt"
76 +
        "publishedAt",
77 +
        "songUrl",
78 +
        "thumbnailUrl"
65 79
      ],
66 80
      "type": "object"
67 81
    }
68 82
  },
69 83
  "id": "com.suibari.nagi.getRadioTrack",
70 84
  "lexicon": 1
71 85
}

Compare Other Versions

Lexicon Garden

@