com.suibari.nagi.getChronicle

suibari.com

Schema Diff

+30 -2

From

CID
bafyreifgnbsoxl5...
Indexed At
2026-09-20 04:57 UTC
View this version

To

CID
bafyreibggjjdhsj...
Indexed At
2026-09-25 02:44 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

4 breaking changes, 5 non-breaking changes.

Breaking Changes (4)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.suibari.nagi.getChronicle#readYear", src: "com.suibari.nagi.getChronicle#readYear", tgt: "com.suibari.nagi.getChronicle#readYear.revision", kind: "prop", name: Some("revision") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.suibari.nagi.getChronicle#readYear", src: "com.suibari.nagi.getChronicle#readYear", tgt: "com.suibari.nagi.getChronicle#readYear.year", kind: "prop", name: Some("year") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.suibari.nagi.getChronicle:output", src: "com.suibari.nagi.getChronicle:output", tgt: "com.suibari.nagi.getChronicle:output.revision", kind: "prop", name: Some("revision") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.suibari.nagi.getChronicle:output", src: "com.suibari.nagi.getChronicle:output", tgt: "com.suibari.nagi.getChronicle:output.year", kind: "prop", name: Some("year") }
Non-Breaking Changes (5)
  • AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.getChronicle#readYear" }
  • AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.getChronicle#readYear.revision" }
  • AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.getChronicle#readYear.year" }
  • AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.getChronicle:output.revision" }
  • AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.getChronicle:output.year" }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "com.suibari.nagi.getChronicle#readYear" }
  • AddedVertex { vertex_id: "com.suibari.nagi.getChronicle#readYear.revision" }
  • AddedVertex { vertex_id: "com.suibari.nagi.getChronicle#readYear.year" }
  • AddedVertex { vertex_id: "com.suibari.nagi.getChronicle:output.revision" }
  • AddedVertex { vertex_id: "com.suibari.nagi.getChronicle:output.year" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "com.suibari.nagi.getChronicle:output", src: "com.suibari.nagi.getChronicle:output", tgt: "com.suibari.nagi.getChronicle:output.revision", kind: "prop", name: Some("revision") }
  • Breaking: RequiredEdgeAdded { vertex_id: "com.suibari.nagi.getChronicle:output", src: "com.suibari.nagi.getChronicle:output", tgt: "com.suibari.nagi.getChronicle:output.year", kind: "prop", name: Some("year") }
  • Breaking: RequiredEdgeAdded { vertex_id: "com.suibari.nagi.getChronicle#readYear", src: "com.suibari.nagi.getChronicle#readYear", tgt: "com.suibari.nagi.getChronicle#readYear.revision", kind: "prop", name: Some("revision") }
  • Breaking: RequiredEdgeAdded { vertex_id: "com.suibari.nagi.getChronicle#readYear", src: "com.suibari.nagi.getChronicle#readYear", tgt: "com.suibari.nagi.getChronicle#readYear.year", kind: "prop", name: Some("year") }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 5
      "description": "自分年表。Nagi にやってきた日・botたんと出会った日・記念日カード・「はじめて」の記録・日記から抜いた出来事・そのころのニュースを、1本の時系列で返す。日記と同じく**本人だけが読む**ので、actor が認証した DID と一致しなければ 403(件数も日付も返さない)。",
6 6
      "output": {
7 7
        "encoding": "application/json",
8 8
        "schema": {
9 9
          "properties": {
10 10
            "cursor": {
11 11
              "description": "次の年。これ以上さかのぼれないときは省略する。",
12 12
              "type": "string"
13 13
            },
14 14
            "hasMore": {
15 15
              "type": "boolean"
16 16
            },
17 17
            "items": {
18 18
              "description": "その年の節目。新しい順。同じ日に複数あるときは kind の固定優先度で決定論的に並ぶ。",
19 19
              "items": {
20 20
                "type": "unknown"
21 21
              },
22 22
              "type": "array"
23 +
            },
24 +
            "revision": {
25 +
              "description": "その年の全内容のSHA-256。表示言語や取得順序には依存しない。",
26 +
              "maxLength": 64,
27 +
              "type": "string"
28 +
            },
29 +
            "year": {
30 +
              "minimum": 2020,
31 +
              "type": "integer"
23 32
            }
24 33
          },
25 34
          "required": [
26 35
            "items",
27 -
            "hasMore"
36 +
            "hasMore",
37 +
            "year",
38 +
            "revision"
28 39
          ],
29 40
          "type": "object"
30 41
        }
31 42
      },
32 43
      "parameters": {
33 44
        "properties": {
34 45
          "actor": {
35 46
            "description": "年表の持ち主。認証した DID と一致しなければならない。",
36 47
            "format": "did",
37 48
            "type": "string"
38 49
          },
39 50
          "cursor": {
40 51
            "description": "次に返す年(\"2025\")。年表は年見出しでまとまるので、ページ境界を見出し境界に一致させている。将来1年の件数が有界でなくなったら、日付とイベントIDの複合カーソルへ移すこと。",
41 52
            "type": "string"
42 53
          },
43 54
          "lang": {
44 55
            "default": "ja",
45 56
            "description": "ニュースの表示言語。en は英訳が揃っているものだけ英語になる。",
46 57
            "enum": [
47 58
              "ja",
48 59
              "en"
49 60
            ],
50 61
            "type": "string"
51 62
          },
52 63
          "limit": {
53 64
            "default": 50,
54 -
            "description": "1ページの上限。年チャンクなので通常は効かず、1年が想定外に膨らんだときの安全弁として働く。",
65 +
            "description": "互換性のため受理するが適用しない。既読は年単位なので必ずその年の全項目を返す。",
55 66
            "maximum": 100,
56 67
            "minimum": 1,
57 68
            "type": "integer"
58 69
          }
59 70
        },
60 71
        "required": [
61 72
          "actor"
62 73
        ],
63 74
        "type": "params"
64 75
      },
65 76
      "type": "query"
77 +
    },
78 +
    "readYear": {
79 +
      "properties": {
80 +
        "revision": {
81 +
          "maxLength": 64,
82 +
          "type": "string"
83 +
        },
84 +
        "year": {
85 +
          "minimum": 2020,
86 +
          "type": "integer"
87 +
        }
88 +
      },
89 +
      "required": [
90 +
        "year",
91 +
        "revision"
92 +
      ],
93 +
      "type": "object"
66 94
    }
67 95
  },
68 96
  "id": "com.suibari.nagi.getChronicle",
69 97
  "lexicon": 1
70 98
}

Compare Other Versions

Lexicon Garden

@