com.suibari.nagi.drawCard

suibari.com

Schema Diff

+30 -1

From

CID
bafyreihcj7ixfpz...
Indexed At
2026-07-25 10:15 UTC
View this version

To

CID
bafyreid7oykvpxe...
Indexed At
2026-08-15 17:15 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

1 breaking change, 7 non-breaking changes.

Breaking Changes (1)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.suibari.nagi.drawCard:output", src: "com.suibari.nagi.drawCard:output", tgt: "com.suibari.nagi.drawCard:output.source", kind: "prop", name: Some("source") }
Non-Breaking Changes (7)
  • AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.drawCard:input" }
  • AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.drawCard:input.reactionUri" }
  • AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.drawCard:input.source" }
  • AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.drawCard:output.source" }
  • AddedEdge AddedEdge { src: "com.suibari.nagi.drawCard", tgt: "com.suibari.nagi.drawCard:input", kind: "prop", name: Some("input") }
  • AddedEdge AddedEdge { src: "com.suibari.nagi.drawCard:input", tgt: "com.suibari.nagi.drawCard:input.reactionUri", kind: "prop", name: Some("reactionUri") }
  • AddedEdge AddedEdge { src: "com.suibari.nagi.drawCard:input", tgt: "com.suibari.nagi.drawCard:input.source", kind: "prop", name: Some("source") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "com.suibari.nagi.drawCard:input" }
  • AddedVertex { vertex_id: "com.suibari.nagi.drawCard:input.reactionUri" }
  • AddedVertex { vertex_id: "com.suibari.nagi.drawCard:input.source" }
  • AddedVertex { vertex_id: "com.suibari.nagi.drawCard:output.source" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "com.suibari.nagi.drawCard:output", src: "com.suibari.nagi.drawCard:output", tgt: "com.suibari.nagi.drawCard:output.source", kind: "prop", name: Some("source") }
  • Non-breaking: AddedEdge { src: "com.suibari.nagi.drawCard", tgt: "com.suibari.nagi.drawCard:input", kind: "prop", name: Some("input") }
  • Non-breaking: AddedEdge { src: "com.suibari.nagi.drawCard:input", tgt: "com.suibari.nagi.drawCard:input.reactionUri", kind: "prop", name: Some("reactionUri") }
  • Non-breaking: AddedEdge { src: "com.suibari.nagi.drawCard:input", tgt: "com.suibari.nagi.drawCard:input.source", kind: "prop", name: Some("source") }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 -
      "description": "全肯定カードを1枚引く。1日1回(JST 4:00 が日付境界)。本日ぶんを既に引いている場合はエラーにせず、その日引いたカードをそのまま返す(冪等)。抽選はサーバ側で行い、結果は AppView にのみ保存される。",
5 +
      "description": "全肯定カードを1枚引く。my Nagiの通常枠と他ユーザーへのリアクション枠を1日各1回利用できる(JST 4:00 が日付境界)。同じ枠を既に引いている場合は、そのカードをそのまま返す(冪等)。抽選はサーバ側で行う。",
6 6
      "errors": [
7 7
        {
8 8
          "name": "AuthRequired"
9 9
        }
10 10
      ],
11 +
      "input": {
12 +
        "encoding": "application/json",
13 +
        "schema": {
14 +
          "properties": {
15 +
            "reactionUri": {
16 +
              "description": "source=reaction のとき必須。本人が当日作成した他ユーザー宛てリアクション。",
17 +
              "format": "at-uri",
18 +
              "type": "string"
19 +
            },
20 +
            "source": {
21 +
              "description": "省略時は後方互換のためmy_nagi。",
22 +
              "knownValues": [
23 +
                "my_nagi",
24 +
                "reaction"
25 +
              ],
26 +
              "type": "string"
27 +
            }
28 +
          },
29 +
          "type": "object"
30 +
        }
31 +
      },
11 32
      "output": {
12 33
        "encoding": "application/json",
13 34
        "schema": {
14 35
          "properties": {
15 36
            "alreadyDrawn": {
16 37
              "description": "true なら本日は既に引き済みで、返しているのはそのカード。",
17 38
              "type": "boolean"
18 39
            },
19 40
            "card": {
20 41
              "description": "引いたカード(定義 + 所持情報)。botたんコメントは非同期生成なので初回は空。",
21 42
              "type": "unknown"
22 43
            },
23 44
            "commentPending": {
24 45
              "description": "true の間は botたんコメントを生成中。クライアントは getCards で取り直す。",
25 46
              "type": "boolean"
26 47
            },
27 48
            "drawStatus": {
28 49
              "type": "unknown"
29 50
            },
30 51
            "isNew": {
31 52
              "description": "コレクション初登場なら true。既に持っているカードなら false。",
32 53
              "type": "boolean"
54 +
            },
55 +
            "source": {
56 +
              "knownValues": [
57 +
                "my_nagi",
58 +
                "reaction"
59 +
              ],
60 +
              "type": "string"
33 61
            }
34 62
          },
35 63
          "required": [
36 64
            "card",
65 +
            "source",
37 66
            "alreadyDrawn",
38 67
            "drawStatus"
39 68
          ],
40 69
          "type": "object"
41 70
        }
42 71
      },
43 72
      "type": "procedure"
44 73
    }
45 74
  },
46 75
  "id": "com.suibari.nagi.drawCard",
47 76
  "lexicon": 1
48 77
}

Compare Other Versions

Lexicon Garden

@