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

Compare Other Versions

Lexicon Garden

@