com.suibari.nagi.getRadioTrack

suibari.com

Schema Diff

+22 -2

From

CID
bafyreidflv6f4a7...
Indexed At
2026-09-23 13:20 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, 8 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 (8)
  • AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.getRadioTrack#track.commentEn" }
  • AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.getRadioTrack#track.commentJa" }
  • 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#track", tgt: "com.suibari.nagi.getRadioTrack#track.commentEn", kind: "prop", name: Some("commentEn") }
  • AddedEdge AddedEdge { src: "com.suibari.nagi.getRadioTrack#track", tgt: "com.suibari.nagi.getRadioTrack#track.commentJa", kind: "prop", name: Some("commentJa") }
  • 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.commentEn" }
  • AddedVertex { vertex_id: "com.suibari.nagi.getRadioTrack#track.commentJa" }
  • 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#track", tgt: "com.suibari.nagi.getRadioTrack#track.commentEn", kind: "prop", name: Some("commentEn") }
  • Non-breaking: AddedEdge { src: "com.suibari.nagi.getRadioTrack#track", tgt: "com.suibari.nagi.getRadioTrack#track.commentJa", kind: "prop", name: Some("commentJa") }
  • 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
        },
37 +
        "commentEn": {
38 +
          "type": "string"
39 +
        },
40 +
        "commentJa": {
41 +
          "type": "string"
42 +
        },
34 43
        "publishedAt": {
35 44
          "format": "datetime",
36 45
          "type": "string"
37 46
        },
38 47
        "slotKey": {
39 48
          "type": "string"
40 49
        },
50 +
        "songUrl": {
51 +
          "description": "選曲した曲のページ。Last.fmまたは既存のYouTubeリンク。",
52 +
          "format": "uri",
53 +
          "type": "string"
54 +
        },
41 55
        "sourceUrl": {
42 56
          "format": "uri",
43 57
          "type": "string"
44 58
        },
59 +
        "thumbnailUrl": {
60 +
          "description": "曲のジャケット画像。既存のYouTube履歴では動画サムネイル。",
61 +
          "format": "uri",
62 +
          "type": "string"
63 +
        },
45 64
        "title": {
46 65
          "type": "string"
47 66
        },
48 67
        "videoId": {
49 68
          "type": "string"
50 69
        }
51 70
      },
52 71
      "required": [
53 72
        "slotKey",
54 73
        "title",
55 74
        "artist",
56 75
        "comment",
57 -
        "videoId",
58 -
        "publishedAt"
76 +
        "publishedAt",
77 +
        "songUrl",
78 +
        "thumbnailUrl"
59 79
      ],
60 80
      "type": "object"
61 81
    }
62 82
  },
63 83
  "id": "com.suibari.nagi.getRadioTrack",
64 84
  "lexicon": 1
65 85
}

Compare Other Versions

Lexicon Garden

@